我想得到一个条形图,其中条形高度对应一个总值,条形本身根据部分值分为颜色。
df <- data.frame(name = c("a", "b", "c"),
total = c(10, 20, 30),
left = c(5, 10, 5),
middle = c(4, 5, 15),
right = c(1, 5, 10))
df <- gather(df, key, value, 3:5)
ggplot(df, aes(x = name, y = total, fill = key)) + geom_bar(stat = "identity")
我得到的不尊重部分值的分布......
答案 0 :(得分:1)
在ggplot中将总数更改为值:
ggplot(df, aes(x = name, y = value, fill = key)) + geom_bar(stat = "identity")
而不是:
ggplot(df, aes(x = name, y = total, fill = key)) + geom_bar(stat = "identity")