减少绘图 X 标签中的距离(R:ggplot2)

Reduce distance in plot X labels (R: ggplot2)

这是我的数据框:

df = data.frame(info=1:30, type=c(replicate(5,'A'), replicate(5,'B')), group= c(replicate(10,'D1'), replicate(10,'D2'), replicate(10,'D3')))

我想绘制我的数据的抖动图,按组(X 标签)和类型(颜色)区分:

ggplot()+
  theme(panel.background=element_rect(colour="grey", size=0.2, fill='grey100'))+
  geom_jitter(data=df, aes(x=group, y=info, color=type, shape=type), position=position_dodge(0.2), cex=2)+
  scale_shape_manual(values=c(17,15,19))+
  scale_color_manual(values=c(A="mediumvioletred", B="blue"))

如何减小表示中 X 标签(D1、D2、D3)之间的距离?

P.D。我想做,即使我在图形

中留空space

最简单的解决方案是调整图的大小。例如,如果您使用 ggsave("my_plot.pdf", width = 3, height = 4.5) 执行命令,它看起来像这样:

或者在 Rmd 文件中,您可以通过各种方式控制尺寸:参见 this link

尝试添加 coord_fixed(ratio = 0.2) 并调整比率。

ggplot()+
  theme(panel.background=element_rect(colour="grey", size=0.2, fill='grey100'))+
  geom_jitter(data=df, aes(x=group, y=info, color=type, shape=type), position=position_dodge(0.2))+
  scale_shape_manual(values=c(17,15,19))+
  scale_color_manual(values=c(A="mediumvioletred", B="blue")) + coord_fixed(ratio = 0.2)

这里有几个选项。

# Setting up the plot
library(ggplot2)

df <- data.frame(
  info=1:30, 
  type=c(replicate(5,'A'), replicate(5,'B')), 
  group= c(replicate(10,'D1'), replicate(10,'D2'), replicate(10,'D3'))
)

p <- ggplot(df, aes(group, info, colour = type, shape = type))

方案一:增加闪避距离。这不会使标签靠得更近,但可以更好地利用可用的 space,从而使标签显得不那么孤立。

p +
  geom_point(position = position_dodge(width = 0.9))

选项 2:扩展 x 轴。将扩展因子从默认的 0.5 增加到 >0.5 会增加轴末端的 space,使标签更靠近。

p +
  geom_point(position = position_dodge(0.2)) +
  scale_x_discrete(expand = c(2, 0))

选项 3:更改纵横比。根据绘图 window 的大小,这也会在视觉上使 x 轴标签靠得更近。

p + 
  geom_point(position = position_dodge(0.2)) +
  theme(aspect.ratio = 2)

reprex package (v1.0.0)

于 2021-06-25 创建