2013-06-27 3 views
1

Я пытаюсь построить беседу с двумя оси, здесь код и прилагается сюжет,R: Две оси диаграммы корректировки

я должен сделать две поправки к нему.

  • Я хочу, чтобы построить линию с точками и точками должна быть середина баров
  • Регуляция правую стороны оси (т.е. ось (4)), отметьте метки должны быть совмещены с левой стороны axix (т.е. ось (2))

Код:

Region=c("North","South","East","West") 
Sales=sample(500:1000,4) 
Change=sample(1:10,4)/10 
names(Sales)=Region 
names(Change)=Region 
barplot(Sales,ylim=c(0,1000)) 
par(new=T) 
plot(Change,type="b",axes=F,ylim=c(0,1)) 
axis(4) 
box() 

С уважением,

Шиваджи

ответ

0

Во-первых, сохраните штрих-код как некоторый объект. Таким образом, вы получите координаты средних точек. Затем добавить строку можно использовать также функцию lines() и просто умножить Change значения с 1000. Тогда для axis() питания функции at= значения и labels= же, как at=, только разделенного на 1000.

x<-barplot(Sales,ylim=c(0,1000)) 
lines(x,Change*1000,type="b") 
axis(4,at=seq(0,800,200),labels=seq(0,800,200)/1000) 

enter image description here

0

Вам нужно играть, чтобы установить одну и ту же ось x во втором сюжете, вы получите эту информацию от par("usr"). xaxs="i" - установить xlim точно, по умолчанию R увеличивает бит xlim, чтобы улучшить его внешний вид.

par(mar=c(5,5,2,5)) # change margins 
x = barplot(Sales, ylim=c(0,1000)) # barplot, keep middle points of bars 
mtext("Sales", 2, line=3) # first y-axis label 
xlim = par("usr")[1:2] # get xlim from plot 
par(new=TRUE) 
plot.new() # new plot 
plot.window(xlim=xlim, ylim=c(0,1), xaxs="i", yaxs="i") # new plot area, same xlim 
lines(x,Change,type="b") # the lines in the middle points 
axis(4) # secondary y-axis 
mtext("Change", 4, line=3) # secondary y-axis label 
box() 

the plot