首页 > 解决方案 > 计数图的 geom_bar:为没有值的列添加 x 轴标签并自定义剩余条的顺序

问题描述

我需要为以下数据中的空值计数添加标签:

library(ggplot2)
myData <- data.frame(
  x = c("A", "A", "B", "B", "B", "C", "C", "C", "", "", "", ""),
  y = c(1, 4, 1, 5, 1, 5, 6, 7, 3, 6, 6, 3)
)

ggplot(myData, aes(x=x)) + 
  geom_bar(width = 0.5)+
  geom_text(stat='count', aes(label = ..count..), vjust = -1)

我的情节目前是这样的: 在此处输入图像描述

如何为第一列添加自定义标签?说“不可用”

第二个问题,我需要自定义剩余条的顺序,所以第一个条总是具有空值的条,但随后,我想要这个顺序的条B, C, A(不是降序或升序)。其他 StackOverflow 答案似乎解决了基于计数的条形重新排序问题。

标签: rggplot2geom-bar

解决方案


你可以通过使用 scale_x_discrete 来做到这一点,限制改变顺序,标签将决定你想要什么文本

p = ggplot(myData, aes(x=x)) + 
  geom_bar(width = 0.5)+
  geom_text(stat='count', aes(label = ..count..), vjust = -1)

p+scale_x_discrete(limits=c("","B","C","A"),
label=c("Not Available","B","C","A"))

在此处输入图像描述


推荐阅读