首页 > 解决方案 > 如何在 R 中创建两个高度不等(不同的最大值)但在 Y 轴上具有相同单位的条形图?

问题描述

是否可以制作大小不等(Y 轴上不同的最大值)但单位相等(计数数据)的条形图(两个)?

该数据是每个季节的嵌套尝试次数的计数数据。每个物种有 7 个季节的数据。我的目标是尽可能清楚地向读者展示数据,以显示这两种筑巢季节中每一种的数量逐季增加。尽管这两个物种的初始增长模式相似,但物种 1 的筑巢数量上升得更快。在同一个条形图上绘制两组数据不是一个好的选择,因为这两个物种的 7 个季节的数据不是同时发生的——而是每个物种的前 7 年定殖(例如 x 轴上的标签是不同的对于这两个物种)

我已经尝试了 par(fig) 和 layout,但还没有达到我需要的功能,我不确定哪个功能更适合我的需要。欢迎任何建议

两个条形图,一个在另一个之上,每个都占据了窗口的一半。两张图的 Y 单位相同,但其中一张的最大值为 300,而另一张为 900。绘制它们时,两张图上的 100 的计数看起来非常不同

SPECIES1 <- c(2,12,44,153,451,857)
SPECIES2 <- c(4,15,35,54,63,243)

windows(11,12)
par(oma=c(3,0.1,1,0.1),mfrow=c(2,1),mar=c(2,6,2,2.1))

barplot(SPECIES2,space=c(0.1,0),ylim=c(0,300),col="black",axes=FALSE)
axis(2,at=seq(0,300,100),las=2, cex.axis=0.9)

barplot(SPECIES1,space=c(0.1,0),ylim=c(0,900), col="black",border=NA,axes=FALSE )axis(2,at=seq(0,900,100),las=2,cex.axis=0.9)

小号

标签: rlayoutgraphbar-chart

解决方案


在这里你如何使用 ggplot 包

##   supp dose  len
## 1   VC D0.5  6.8
## 2   VC   D1 15.0
## 3   VC   D2 33.0
## 4   OJ D0.5  4.2
## 5   OJ   D1 10.0
## 6   OJ   D2 29.5

ggplot(data=df2, aes(x=dose, y=len, fill=supp)) +
geom_bar(stat="identity", position=position_dodge())

但是您需要第三个变量(在上述情况下为supp)。请提供您要绘制的样本数据以获得明确的答案。


推荐阅读