【问题标题】:Increase spaces between x values of boxplot (overlapping x labels)增加箱线图 x 值之间的空间(重叠 x 标签)
【发布时间】:2020-04-25 21:32:46
【问题描述】:

您好,我对使用编码语言非常陌生,最近在 R 中制作了我的前几个图形。我使用此代码制作图形,结果它们很好,除了 x 轴上的标签重叠。

library(ggplot2)
ggplot(LR_density, aes(x=Plant_Lines, y=`Lateral_Root_Density.(root/cm)`, fill=Expression_Type)) + 
    geom_boxplot() +
    geom_jitter(color="black", size=0.4, alpha=0.9) +
    ggtitle("Lateral root density across plant expression types")

The figure produced by the line of code I used

我想知道是否有人知道如何让 x 轴标签在 ggplot2 箱线图中间隔更大。我一直在环顾四周,但还没有找到明确的答案。任何关于做什么或在哪里看的帮助都会很棒!

【问题讨论】:

  • 也许尝试旋转 x 轴标签? stackoverflow.com/questions/15838533/…
  • ...或增加输出设备的宽度
  • 可以通过设置主题旋转轴标签theme(axis.text.x = element_text(angle = <angle>))
  • 显然,从 ggplot2 3.3.0 开始,你也可以避开你的 x 标签 - datavizpyr.com/… 虽然我还没有使用过这个。我认为最好的方法是按照@user20650 的建议调整输出设备的大小,并相应地定义字体大小。如果标签仍然重叠,并且您已经尝试旋转它们,您还可以翻转绘图,以便标签在 y 轴上更好地阅读。
  • @user20650 谢谢。已添加答案!

标签: r ggplot2 boxplot


【解决方案1】:

根据评论,this thread 显示了另一种处理重叠 x 轴标签的选项,从 ggplot2 3.3.0 开始就可以使用它

包含第二个图表,它稍微“挤压”了轴,这也模拟了更改视口/文件大小的效果。

library(ggplot2)

ggplot(diamonds, aes(x = cut, y = price)) +
  geom_boxplot() +
  scale_x_discrete(guide = guide_axis(n.dodge = 2)) 


ggplot(diamonds, aes(x = cut, y = price)) +
  geom_boxplot() +
  scale_x_discrete(guide = guide_axis(n.dodge = 2)) +
  coord_fixed(1/10^3.4)

reprex package (v0.3.0) 于 2020 年 4 月 30 日创建

【讨论】: