【问题标题】:Removing some tick labels in boxplots in ggplot2删除 ggplot2 箱线图中的一些刻度标签
【发布时间】:2013-10-11 06:17:42
【问题描述】:

我对 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)
    )

【问题讨论】:

    标签: r ggplot2 label boxplot


    【解决方案1】:

    这确实不是一个难题。关键思想很容易找到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 了解更多信息。

    更新。

    发帖前别忘了查看相关问题:bump1,bump2.

    【讨论】: