删除ggplot2中的箱形图中的一些刻度标签

时间:2013-10-11 06:17:42

标签: r ggplot2 label boxplot

我对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 个答案:

答案 0 :(得分:4)

这确实不是一个难题。关键想法很容易找到here

基本上,您缺少一行代码。既然你没有分享你的数据样本(羞辱你!见this),我生成了一些。这是解决方案:

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 documentation

<强> UPD。

发布前不要忘记查看相关问题:bump1, bump2.