在ggplot2中删除箱线图中的一些刻度标签。

4

我对ggplot相对较新,所以如果这很简单,我很抱歉,但我在网上找不到任何东西。

我想在ggplot2中显示29个箱形图(编号为1.1至4.0),并排放置(我可以做到),但是一旦我使刻度标签的大小适当(我可以做到),标签就会重叠,而且我只需要一些(1.5、2、2.5等)。如何仅删除一些刻度标签?此外,有没有办法在1.0处包含一个空白刻度标记,使我的刻度标签是漂亮的、圆形的数字?

我的数据是一个列表,我已经'融化'了它,因为每个箱形图具有不同数量的观察值。

我的当前代码:

list = list(data11, data12, ... data39, data40) # Elipse denotes the rest of the sequence
df = melt(list)

ggplot(df, aes(factor(variable), value)) + 
    geom_boxplot(outlier.size=1.5, colour="black") + 
    xlab("Xlabel") +
    ylab("Ylabel") +
    theme_classic() + 
    theme(
        axis.text.x = element_text(size=12),
        axis.text.y = element_text(size=12),
        axis.title.x = element_text(size=14),
        axis.title.y = element_text(size=14, angle=90),
        axis.line = element_line(size=0.75)
    )
1个回答

4
这并不是一个难题。关键思想可以在这里轻松找到:这里
基本上,你缺少一行代码。由于你没有分享数据样本(真丢人!请看这个链接),我生成了一些数据。以下是解决方案:
df.so1 <- runif(10); df.so2 <- runif(10); df.so3 <- runif(10)
list.so = list(df.so1, df.so2, df.so3)
df.so = melt(list.so)

ggplot(df.so, aes(factor(L1), value)) + 
  geom_boxplot(outlier.size=1.5, colour="black") + 
  xlab("Xlabel") + ylab("Ylabel") +
  theme_classic() + 
  theme(
    axis.text.x = element_text(size=12),
    axis.text.y = element_text(size=12),
    axis.title.x = element_text(size=14),
    axis.title.y = element_text(size=14, angle=90),
    axis.line = element_line(size=0.75)
  ) + 
  scale_x_discrete(breaks = c(1,3))

请注意,您可以完全控制轴、刻度、刻度标签等。有关更多信息,请参阅ggplot2文档中的离散比例尺部分。
更新:
在发帖之前,请不要忘记查看相关问题:bump1, bump2。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接