我有数据框
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))
更改刻度时手动更正
感谢您的帮助
答案 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)
答案 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()