我正在尝试根据以下数据生成直方图:
有五个类别(screen.out〜safety.out),最后有一个总数(只计算每个类别中有多少个“ 1”)
这是我的目标剧情:
但是我不知道如何生成目标图。是否可以仅使用总数来生成绘图(一张图片中的所有类别都与附件2一样)?或其他方法?
感谢收看。
答案 0 :(得分:0)
datatotal %>%
select(-complaindata) %>%
gather() %>%
ggplot(aes(key, value)) +
geom_col() +
labs(x = "x_name", y = "y_name")
这应该为您提供图像中设计的图。
答案 1 :(得分:0)
我已经用您的数据作为示例,但是下次请不要发布图像,复制并粘贴实际的代码和数据。
假数据:
library(dplyr)
data <- tibble(
screen.out = c(rep(1, 19), 0),
voice.out = c(rep(0, 15), rep(1,5)),
cs.out = c(rep(0,10), rep(1, 10))
) # this is just some fake data
现在的诀窍是将两列中的所有列(此处为3)汇总在一起,一列带有数字,一列带有原始列名(由下面的gather
完成)。
图:
library(ggplot2)
data %>%
gather("key", "value") %>% # you can change this names
ggplot(aes(key, value, fill = key)) + # as long as you update here too accordingly
geom_col()