R - geom_bar - ' stack'位置没有加总值

时间:2018-02-14 11:37:35

标签: r ggplot2 geom-bar

我有数据框

df <- data.frame(profile = rep(c(1,2), times = 1, each = 3), depth = c(100, 200, 300), value = 1:3)

这是我的情节

ggplot() + 
  geom_bar(data = df, aes(x = profile, y = - depth, fill = value), stat = "identity")

我的问题是y标签,它与数据框的深度值不对应

为了帮助,我想要的情节如下:

ggplot() + geom_point(data = df, aes(x = profile, y = depth, colour = value), size = 20) + xlim(c(0,3))

但是条形符号垂直对齐

nb:我不想在scale_y_discrete(labels = (desired_labels))更改刻度时手动更正

感谢您的帮助

2 个答案:

答案 0 :(得分:0)

考虑到你想要一个从0到-300的y轴,使用facet_grid()似乎是一个正确的选择,而没有将数据汇总在一起。

ggplot() + geom_bar(data = df, aes(x = as.factor(profile), y = -depth, fill = value), stat = 'identity') + facet_grid(~ value)

enter image description here

答案 1 :(得分:0)

我拥有它!

感谢您的回复和帖子R, subtract value from previous row, group by

恢复; 数据:

df <- data.frame(profile = rep(c(1,2), times = 1, each = 3), depth = c(100, 200, 300), value = 1:3)

然后我们计算每个配置文件的 深度步骤

df$diff <- ave(df$depth, df$profile, FUN=function(z) c(z[1], diff(z)))

最后情节

ggplot(df, aes(x = factor(profile), y = -diff, fill = value)) + geom_col()