我对 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)
)
最佳答案
这确实不是一个很难的问题。关键思想很容易找到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.
关于删除 ggplot2 箱线图中的一些刻度标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19311469/