r - R中条形图数组中的恒定条形宽度

标签 r plot width

我正在尝试制作 的(1 行,3 列)条形图阵列都具有相同的条宽 .

所有三个条形图都有不同数量的观测值,因此每个图的条形宽度最终都不同(即具有最多观测值的图形具有最窄的条形,而具有最少观测值的图形具有最宽的条形)。我从barplot {graphics}了解到R文件说明,

"Specifying a single value will have no visible effect unless xlim is specified"



然而,我的 x labels是字符串,所以我不确定如何指定 xlim .我不介意我的图的宽度是否不同,但是我需要以某种方式指定它吗?

这是一些假数据和我正在使用的代码……谢谢你的帮助。
height4plot1 <- c(1,6,9,2,3,10,7,15)
names4plot1 <- c("P1","P2","P3","P4","P5","P6","P7","P8")

height4plot2 <- c(5,4,10,2)
names4plot2 <- c("M1","M2","M3","M4")

height4plot3 <- c(4,12)
names4plot3 <0 c("U1","U2")

par(mfrow=c(1,3),
    mar=c(10,5,2,1),
    cex.axis=0.7,
    mgp=c(3,0.5,0))
barplot(height4plot1,
    names.arg=names4plot1,
    las=3,
    axes=TRUE,
    axisnames=TRUE,
    ylab="YLAB",
    ylim=ylim,
    plot=TRUE,
    main="PLOT1",
    width=1)
barplot(height4plot2,
    names.arg=names4plot2,
    las=3,
    axes=TRUE,
    axisnames=TRUE,
    ylim=ylim,
    plot=TRUE,
    main="PLOT2",
    width=1)
barplot(height4plot3,
    names.arg=names4plot3,
    las=3,
    axes=TRUE,
    axisnames=TRUE,
    ylim=ylim,
    plot=TRUE,
    main="PLOT3",
    width=1)

最佳答案

没有像 height4plot1 这样的变量等等。测试你的代码和修改比较困难,但这里有一些可能性:

您可以指定 width=0.8对于每个图和 xlim=c(0,maxnum)其中 maxnum 是不同图中的最大条数。这将在每个较小的条形图中留下一个空白部分。

你可以用 NA 填充较短的高度向量直到它们的长度都相同(这仍然会给出空的部分)。

您可以将 3 个向量连接在一起并制作单个箱线图,可能对 3 个组进行不同的着色以帮助区分它们。 abline函数可用于在组之间添加分隔线(请参阅 barplot 的 space 参数,或包含一个“NA”作为分隔符以在组之间提供更多空间)。您可以使用返回值来帮助将标题放置在每个组上方。

您可以使用 layout而不是 par将您的 3 个绘图区域设置为具有不同的宽度,但获得宽度的确切比率以提供完全相同大小的条并不简单(尽管您可能会反复试验)。如果你真的想要这条路线,那么 grconvertXoptim可能有帮助。

我会建议上面的第二个选项。

关于r - R中条形图数组中的恒定条形宽度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13349349/

相关文章:

html - 使用 %? 标记内容高度/宽度?

C# ListView 最后一列太宽

javascript - 大小改变 &lt;input&gt;

r - 将结果写入foreach循环R内的文件

R:如何创建函数向量?

python - 使用 matplotlib 的亚像素精度散点图?

r - 沿线性回归线绘制条件密度曲线 `P(Y|X)`

r - 在 R 中按季度对数据进行分组,但在没有数据时考虑季度

r - 通过 Outlook (RDCOMclient) 将 R Markdown 输出作为正文电子邮件发送

Pdf中的R图标题编码