在ggplot中删除所有x轴标签

332

我需要移除X轴上的所有内容,包括标签和刻度线,以便只标记Y轴。我该怎么做?

在下面的图像中,我想要删除'clarity'和所有刻度线和标签,以便只剩下坐标轴线。

样例 ggplot

data(diamonds)
ggplot(data = diamonds, mapping = aes(x = clarity)) + geom_bar(aes(fill = cut))

ggplot图表:

输入图片描述

期望的图表:

输入图片描述

1个回答

723

您需要在theme()函数中将要去除的元素设置为element_blank()

ggplot(data = diamonds, mapping = aes(x = clarity)) + geom_bar(aes(fill = cut))+
  theme(axis.title.x=element_blank(),
        axis.text.x=element_blank(),
        axis.ticks.x=element_blank())

19
有没有一种方法可以完全摆脱坐标轴,就像基础 R 中的 axes = FALSE。这是一项很大的工作。 - jtr13
37
@jtr13,你可以使用theme_void()来清除所有内容: ggplot(data = diamonds, mapping = aes(x = clarity)) + geom_bar(aes(fill = cut)) + theme_void() - Augusto Fadel
参考:ggplot文档 - Andry
32
有一种非常'ggplot'的方法可以使用scale_x_discretelabs来实现:ggplot(data = diamonds, mapping = aes(x = clarity)) + geom_bar(aes(fill = cut)) + scale_x_discrete(labels = NULL, breaks = NULL) + labs(x = "")。这与IT有关。 - Will Pike
10
稍作修改,使用labs(x = NULL)可以完全移除用于标签的边距。 - Breaking Waves

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