我对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)
)
答案 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。强>