r - 从默认更改 geom_ribbon() 的路径顺序
问题描述
我对 geom_ribbon() 有疑问。我展示了几年来两个不同变量的变化。我不明白如何使 geom_ribbon 多年来一直遵循路径,而不是根据 x oder y 轴上值的增加来连接数据点。
这是一个最小的可重现示例。任何帮助表示赞赏:
library(tidyverse)
library(ggplot2)
plotdata <- data.frame(Region = factor(c("A", "A", "A", "B", "B", "B")), income = c(60, 80, 90, 40, 50, 55),
population = c(90,120,100, 80, 90, 100), year = factor(c(2020, 2050, 2080, 2020, 2050, 2080)),
income_sd = c(5, 8, 10, 2, 3, 3))
ggplot(data = plotdata, aes(x = income, y = population, shape = year,
color = Region, fill = Region, group = Region)) +
theme_minimal(base_size = 12) +
geom_ribbon(aes(xmin = income - income_sd, xmax = income + income_sd), alpha = 0.2, color = NA) +
geom_line() + geom_point() +
geom_text(aes(label = year), color = "black")
在生成的图中,请注意区域 A 的一切看起来如何,因为 y 变量随年份单调增加。然而,在区域 B 的情况下,红丝带以错误的顺序连接,因为它以单调递增的顺序跟随 y 变量。这不是我想要的,我希望它遵循“年”变量。我如何实现这一目标?
将 ay = * 参数添加到 geom_ribbon() 会删除色带,从而违背了目的。我还玩过 geom_ribbon 的 order = * 参数,以及一年中数据框中的级别。没有成功。
谢谢!
解决方案
推荐阅读
- oracle - 创建根据其他表中的列值更新行的触发器
- node.js - 记录 channelUpdate 事件以进行权限更改
- amazon-web-services - 如何增加 chrome-aws-lambda 中铬的可用内存?
- powershell - 在多个目录中为同名文件添加前缀并将它们复制到另一个目录中
- javascript - Moment.js 以空格作为左填充而不是 0
- python - KeyError: 'args' 使用日志记录文件配置时
- tensorflow - 如果项目是简单的图像,tf.dataset.Dataset.interleave() 是否提供任何好处?
- laravel - 模型内部有条件的范围
- python - numpy 中的错误输出精度
- c++ - QListView - 如何显示子项