【问题标题】:Is there a way to go beyond the 200 row limit of layout() in R有没有办法超越 R 中 layout() 的 200 行限制
【发布时间】:2020-03-24 02:22:30
【问题描述】:

我正在尝试绘制非常长而细的条形图,并且对 layout() 感到满意,我一直在使用 matrix(1:200, 200, 1) 来定义我的绘图区域。请参阅附图中此类图的示例。

example plot

我希望能够在有 200 多个数据集要绘制的情况下执行此操作。

布局错误(mat = matrix(1:201, 201, 1)) : 布局中的行太多,限制为 200

任何帮助将不胜感激。

【问题讨论】:

  • 看起来这个限制在 C 代码中,这使得修改非常困难(即,想要从源代码重新编译 R,但不能保证它会工作)。不使用layout 也可以生成绘图...这是一个有点 类似的示例,将vertical histograms on single plot
  • 另一种选择类似于Hmisc::subplot。一个大图,然后每个条形图都是一个子图。

标签: r


【解决方案1】:

我发现par(mfrow = c(300, 1))layout(mat = matrix(1:300, 300, 1)) 完全相同,但没有限制警告。但是,当我进一步推动限制时,我会收到警告:

plot.new() 中的错误:图边距太大

有没有办法解决这个问题?特别是对于将绘图导出到文件,在 rstudio 中绘图对我来说不太重要。再次感谢。

【讨论】:

  • 我可以发布一种使用 ggplot2 制作水平条形图的方法,但是对于您显示的示例数据(单个值),所有图都从 y 轴开始,与您的示例不同。
  • 您是否在适当大的文件绘图设备中运行代码?例如,png("testplot.png", height = 9000, width = 1000); par(mfrow = c(300, 1))?
  • 我刚刚为高度选择了一个大数字 - 您应该考虑每个条形图需要多少像素以及轴和标签占用多少像素。而且我假设您还使用par 将所有小数字的边距调整为基本上没有。
猜你喜欢
  • 1970-01-01
  • 2017-03-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-03-15
  • 1970-01-01
  • 2019-10-05
  • 1970-01-01
相关资源
最近更新 更多