【问题标题】:R: Increase space between multiple boxplots to avoid omitted x axis labelsR:增加多个箱线图之间的空间以避免省略 x 轴标签
【发布时间】:2016-07-02 22:49:08
【问题描述】:

假设我生成了 5 组随机数据,并希望使用箱线图将它们可视化并将它们保存到文件“boxplots.png”中。使用代码

    png("boxplots.png")
    data <- matrix(rnorm(25),5,5)
    boxplot(data, names = c("Name1","Name2","Name3","Name4","Name5"))
    dev.off()

在“boxplots.png”中根据需要创建了 5 个箱线图,但是省略了第二个(“Name2”)和第四个(“Name4”)箱线图的名称。即使更改我的 png 视图的窗口也没有什么区别。我怎样才能避免这种行为?

谢谢!

【问题讨论】:

  • 增加绘图/图形窗口的宽度或减小标签的大小
  • 感谢您的回答 - 它让我意识到需要更多信息来描述我的问题,请参阅我的编辑。
  • png 有一个宽度参数,您可以使用它来使绘图更宽。您还可以使用las 参数旋转标签。 boxwex , cex.axis 等.. 尝试一些,看看什么对你有用
  • 您也可以将标签倾斜书写。例如,尝试使用 srt = .45 的文本。
  • 感谢大家的建议 - 您的所有方法都有效并帮助了我!最后,增加 png 的宽度恰好最适合我的特定设置 - 只是为了完整性而提到这一点。再次感谢你! :)

标签: r


【解决方案1】:

您提供的代码不会在我的设置中产生重叠,但这一点相对没有实际意义:您想要一种在单词之间留出更多空间的方法。 解决症状的一种(蛮力式)方法是将它们交替放在不同的行上:

set.seed(42)
data <- matrix(rnorm(25),5,5)
nms <- c("Name1","Name2","Name3","Name4","Name5")
oddnums <- which(seq_along(nms) %% 2 == 0)
evennums <- which(seq_along(nms) %% 2 == 1)

(必须有更好的方法来做到这一点,但它确实有效。)

从这里开始:

png("boxplot.png", height = 240)
boxplot(data, names = FALSE)
mtext(nms[oddnums], side = 1, line = 2, at = oddnums)
mtext(nms[evennums], side = 1, line = 1, at = evennums)
dev.off()

png的使用在这里不重要,我只是因为你的编辑才使用它。)

【讨论】:

  • 感谢您的建议 - 这是一个很好/简单的解决方案,我会牢记在心!只是为了完成:user20650 使用宽度参数的建议恰好提供了一个很好的解决方案,其中每个标签都“在一条线上”,但框之间的空间增加了。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-01-04
  • 1970-01-01
  • 1970-01-01
  • 2014-08-31
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多