barplot双向数据集y轴的左右两侧

时间:2013-08-09 20:01:09

标签: r axes bar-chart

我试图找出如何制作条形图,我可以在其中显示两个数据集。每个位于y轴的一侧。我需要空间在少数图表中显示许多数据集。堆叠或其他选项,但我想知道如何特别解决这个任务 我已经开始玩了一点

#creating data    
names<-LETTERS[1:9]

data1<-c(8, 6, 3, 2, 0, 1, 1, 3, 1)
data2<-c(0, -1,  0,  0,  0,  0,  0, -2, -1)#negative to show them on the 
                                           #left side of yaxis

data1<-matrix(data1,ncol=9,nrow=1,byrow=F)
dimnames(data1)<-list(1,names)

data2<-matrix(data2,ncol=9,nrow=1,byrow=F)
dimnames(data2)<-list(1,names)

par(fig=c(0.5,1,0,1)) # making space for the "left" barplot
barplot(data1,horiz=T,axes=T,las=1)
par(fig=c(0.35,0.62,0,1), new=TRUE)#adjusting the "left" barplot

#because the labels would be negative

# use of axes=F
barplot(data2,axes=F,horiz=T,axisnames=FALSE)
#creating a new axis with desired labels
axis(side=1,at=seq(-8,0,2),labels=c(8,6,4,2,0))

但我很难理解fig = c(...)背后的概念 如何为我的&#34; left&#34;添加xaxis。 barplot具有相同的长度,即从0:8开始像另一个一样

由于 亚历

1 个答案:

答案 0 :(得分:1)

只要您事先知道轴,这应该有效(添加xlim参数)。

我还编辑了你的早期代码,我认为你希望你的输出看起来如何:

par(mfrow=c(1,2))
barplot(data2,axes=F,horiz=T,axisnames=FALSE,
        xlim=c(-8,0))

#creating a new axis with desired labels
axis(side=1,at=seq(-8,0,2),labels=c(8,6,4,2,0))
barplot(data1,horiz=T,axes=T,las=1)