R 条形图y轴左右两侧的数据集

R 条形图y轴左右两侧的数据集,r,axes,bar-chart,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 o

我试图找出如何制作柱状图,在这里我可以显示两个数据集。每个都位于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))
#创建数据

名称只要您知道前面的轴,这应该可以工作(添加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)

谢谢不错的方法,但它看起来并不完全像我的想法。使用您的方法和我自己par上的一些测试(图=c(0.41,0.91,0,1),新=T),中心仍然(y轴)移动到右侧条形图(数据1),条形图(数据1,水平=T,轴=T,轴=las=1)…看起来像我想要的,但我仍然必须手动固定y轴的长度