r - 如何在 geom_raster 中设置一个常量“ylim”?
问题描述
我有一种“时间序列”,在同一个人的固定时间点采取不同的措施。我想在同一个图表上以图形方式表示这些时间序列中的 2 个(这没问题),并添加一个取决于第三个因素的背景。
这是我所做的一个可重复的示例:
df <- data.frame(
x = seq(1, 20),
y = sample(c(1:10), 20, replace = TRUE),
z = sample(c(1:10), 20, replace = TRUE),
w = sample(c("yes", "no"), 20, replace = TRUE)
)
ggplot(df) +
geom_line(aes(x = x, y = y), color = 'darkorange') +
geom_line(aes(x = x, y = z), color = 'royalblue') +
geom_raster(aes(x = x, y = 5, fill = w, alpha = w)) +
scale_alpha_ordinal(range = c(0, 0.8)) +
scale_fill_manual(values = c("gray32", "gray32"))
这给了我几乎我想要的东西,除了我希望我的光栅覆盖我的整个 y 轴窗口。
任何想法?
谢谢!
解决方案
我认为在这里使用 geom_rect 是最简单的:
ggplot(df) +
geom_line(aes(x = x, y = y), color = 'darkorange') +
geom_line(aes(x = x, y = z), color = 'royalblue') +
geom_rect(aes(xmin = x - 0.5, xmax = x + 0.5,
ymin = -Inf, ymax = Inf, fill = w, alpha = w)) +
scale_alpha_ordinal(range = c(0, 0.8)) +
scale_fill_manual(values = c("gray32", "gray32"))
可能也可以使用geom_tile
and geom_raster
,但是如果不摆弄coord_cartesian
.
推荐阅读
- python - AWS Elastic Beanstalk 无法使用 requirements.txt 安装 Python 包 - Firebase-Admin
- xslt - 循环字符串并获取值 xslt
- javascript - 如何读取/更新从 Firebase 转换为 JSON 的对象实例
- android - 项目无法在回收站视图中设置
- javascript - 上一个功能结束后继续功能
- java - 关于java中的字符串拆分方法
- javascript - 类型“{}”缺少来自“匹配”类型的以下属性
':参数、isExact、路径、url - python-3.x - 如何在 vscode 中更改可访问 git 的默认 python 包?
- python - 按值标准和键标准排序后从字典中选择键
- dart - 客户端断开连接时未调用 dart io websocket