我有这个数据框:
Unit <- c(A, B, C, D)
Yes <- c(50, 65, 20, 41)
No <- c(70, 67, 40, 20)
Missing <- c(10, 12, 8, 7)
df <- data.frame(Unit, Yes, No, Missing)
我想使用Excel中的简单条形图(请参阅附图):Excel Plot
https://i.stack.imgur.com/BvWSA.jpg
我使用了ggplot,但只使用了一个Var,如果我添加其他的则它给了我错误:
ggplot(data = df, aes(x = Unit, y = Yes)) +
geom_col() +
geom_text(aes(label = Yes), position = position_stack(vjust = 0.5))
谢谢。
答案 0 :(得分:3)
您的数据需要采用长格式而非宽格式才能在ggplot
中绘图Unit <- c("A", "B", "C", "D") #character objects need quotes
Yes <- c(50, 65, 20, 41)
No <- c(70, 67, 40, 20)
Missing <- c(10, 12, 8, 7)
df <- data.frame(Unit, Yes, No, Missing)
require(tidyr)
df.long <- gather(df, variable,value, -Unit)
数据采用长格式后,position_dodge()
会为您提供所需的图表
ggplot(data = df.long, aes(x = Unit, y = value, fill = variable)) +
geom_col(position = position_dodge())