r - y 轴左侧和右侧的条形图两侧数据集

标签 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(...)背后的概念 如何为我的“左”条形图添加一个具有相同长度的 xaxis,即像另一个一样从 0:8 开始运行

谢谢 亚历克斯

最佳答案

只要您事先知道轴,这应该可以工作(添加 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)

关于r - y 轴左侧和右侧的条形图两侧数据集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18154724/

相关文章:

r - Windows 10 下 RStudio 的包 Pane 中的单独用户库和系统库?

r - ggplot 更改图例中的几何顺序

matlab - 单个冲浪图的多个轴

r - 更改条形图中条的宽度 (R)

python - 我如何用这些数据绘制条形图

java - Excel 生成 [Java] - 条形图 - 启用多类别标签

r - 调整 lapply、arrangeGrob 制作的多个图的宽度

r - 将 data.frame 列从因子转换为字符

python - matplotlib 改变子图的大小

python - 从文本框小部件评估表达式时出现 Pyplot 警告