我试图找出如何制作条形图,我可以在其中显示两个数据集。每个位于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开始像另一个一样
由于 亚历
答案 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)