ggplot2 删除轴标签

Posted

技术标签:

【中文标题】ggplot2 删除轴标签【英文标题】:ggplot2 remove axis label 【发布时间】:2018-01-31 18:02:40 【问题描述】:

我有以下数据集:

dput(head(active_clients))
structure(list(Date = structure(c(1422662400, 1425081600, 1427760000, 
1430352000, 1433030400, 1435622400), class = c("POSIXct", "POSIXt"
), tzone = "UTC"), value = c(65139, 66615, 66669, 67081, 67277, 
67366), month = 1:6, year = c(2015L, 2015L, 2015L, 2015L, 2015L, 
2015L), year_month = c("1/15", "2/15", "3/15", "4/15", "5/15", 
"6/15"), year2 = c("15", "15", "15", "15", "15", "15")), .Names = c("Date", 
"value", "month", "year", "year_month", "year2"), row.names = c(NA, 
-6L), class = c("tbl_df", "tbl", "data.frame"))

我正在使用 ggplot2 绘制以下线/点图。

t <- ggplot(active_clients)  +
  geom_point(aes(as.factor(year_month), 
                 value), 
             size = 2, 
             color="deepskyblue4") +
  geom_line(aes(as.factor(year_month), 
                value,
                group = 1, alpha = 0.5), 
            color = "deepskyblue4") +

  xlab("") + 
  ylab("") +
  theme(legend.title = element_blank()) +
  theme_minimal()

ggplotly(t)

但我无法从 x 轴上移除标签。

我也试过添加:

theme(legend.title = element_blank(), axis.text = element_blank())

不知道我做错了什么。

有什么提示吗?

更新

这是我得到的情节:

【问题讨论】:

你见过1,2这些类似的帖子吗? 是的,在我的情况下它不起作用。 您的问题源于在使用theme(axis.text = ...) 修改主题后调用theme_minimal()。由于theme_minimal() 是一个完整的主题,它会覆盖您的修改。任何时候你想修改一个情节的主题,在你的通话中任何完整的主题后面加上那个声明。 【参考方案1】:

要删除x轴标签,你应该尝试在theme()中使用axis.text.x=element_blank()

移除 x 轴标签:

ggplot(active_clients)  +
  geom_point(aes(as.factor(year_month), value), size = 2, color="deepskyblue4") +
  geom_line(aes(as.factor(year_month), value, group = 1, alpha = 0.5), color = "deepskyblue4") +
  theme_minimal()+
  theme(axis.text.x=element_blank())

【讨论】:

它不工作。我是否可能需要两次删除 geom_point 和 geom_line 的标签?如果是这样,你知道怎么做吗? @Prometheus 你能提供一个最小可重现的错误示例吗? @Ashish 因为 ggplot 返回静态图,使用 plotly 可以获得交互式图。我在仪表板中使用特定的情节。 我也在学习 ggplotly 与闪亮仪表板的结合。祝你好运! @Prometheus,很酷。我建议您编辑帖子并在其他标签之外添加ggplotly 标签。我正在学习ggplotly,所以必须做一些挖掘才能回复你。【参考方案2】:

如何删除 x 轴标签并将其保存为 ggplot 对象。此后,将它包裹在 ggplotly 上,它应该可以解决问题。一个最小可重现的例子如下;

library(plotly)
library(ggplot2)
# create a ggplot object and remove the x-axis label
bp <- ggplot(PlantGrowth, aes(x=group, y=weight)) + 
  geom_boxplot()+
  theme(axis.title.x=element_blank(), axis.text.x=element_blank(),
                      axis.ticks.x=element_blank())
# show the ggplot
bp
# create a ggplotly object from the ggplot object
p<- ggplotly(bp)
# show the ggplotly object
p

我认为这清楚地回答了你的问题。

【讨论】:

以上是关于ggplot2 删除轴标签的主要内容,如果未能解决你的问题,请参考以下文章

R语言可视化包ggplot2包设置轴标签的位置实战

R语言ggplot2可视化多行文本轴标签轴标签带下标轴标签数学公式实战

R语言ggplot2包旋转(Rotate)可视化图像轴标签实战

自定义不同颜色的ggplot2轴标签

增加y轴刻度标签ggplot2上的间距

R语言ggplot2可视化增加轴标签(ticks)和轴标题(title)之间的距离实战