r - geom_ribbon() 在 ggplot2 中使用多个数据集:as.POSIXct 中的错误
问题描述
我在 ggplot2 中使用多个数据集来创建事件发生的时间序列。该计划是绘制两个数据集随时间变化的平均线(平均值是平均发生日期),并用于geom_ribbon()
描绘平均值上下 +1 和 -1 标准差之间的范围(列在下面的列中sdv_pos
并sdv_neg
表示 +1和 -1 分别)。
我能够绘制两条平均线。但是,当我插入 geom_ribbon 时,出现以下错误:
as.POSIXct.numeric(value) 中的错误:必须提供“原点””。
我尝试使用原点转换geom_ribbon()
行中使用的列as.POSIXct()
,但没有奏效。我只得到这个错误 geom_ribbon()
,而不是geom_line()
。
这是两个数据集: Data1:
sdv_pos stv_neg year data1_mean
1976-03-20 1976-03-14 1997 1976-03-17
1976-02-18 1976-01-18 1998 1976-02-03
1976-02-12 1976-01-06 1999 1976-01-24
1976-03-02 1976-01-07 2000 1976-02-04
1976-01-10 1976-01-10 2001 1976-01-10
1976-04-21 1976-02-19 2002 1976-03-21 1
数据2:
sdv_pos sdv_neg year data2_mean
1976-04-24 1976-03-10 1997 1976-04-02
1976-04-21 1976-01-27 1998 1976-03-10
1976-04-21 1976-01-20 1999 1976-03-07
1976-03-23 1976-01-04 2000 1976-02-12
1976-05-05 1976-02-08 2001 1976-03-23
1976-05-01 1976-01-29 2002 1976-03-16
这是我为此使用的代码。请注意,当我删除geom_ribbon()
情节作品时。但是,当我包括在内时,geom_ribbon()
我得到了错误。
graph1<- ggplot()+
geom_line(data = Data1, aes(x = year, y = data2_mean), color = "blue") +
geom_ribbon(data = Data1, aes(x=data2_mean, ymax=sdv_pos, ymin=sdv_neg), fill="pink", alpha=.5)+
geom_line(data = Data2, aes(x = year, y=data2_mean), color = "red") +
geom_ribbon(data = Data2, aes(x=data2_mean, ymax=sdv_pos, ymin=sdv_neg), fill="yellow", alpha=.5)
请注意,x 轴的年份和数据值的年份不同。我使用 1976 只是为了将平均线保持在同一日期/月份,否则 y 轴将延伸到包括研究中的所有年份
解决方案
我通过将命令更改为
geom_ribbon(data = Data1, aes(x=data2_mean, ymax=sdv_pos, ymin=sdv_neg), fill="pink", alpha=.5)+
不同之处在于 x 值是多少。我以为我必须将平均值作为功能区的中心线,但它所做的只是在两条线(sdv_pos,sdv_neg)之间的空间中着色,并且x轴需要x来着色该区域。 .
似乎很明显,但我想在这里发布一个答案,以防有人遇到同样的问题
推荐阅读
- python - Python 到 C 浮点不精确
- javascript - Netsuites SuiteScript 框架能否用于根据对脚本 url 的 GET 请求返回信息
- snowflake-cloud-data-platform - 使用 Snowflake+DBT 时随机发生无效的 JWT 令牌
- r - 在R中的坐标周围绘制多边形
- javascript - 在 React Native 中使用 readAsStringAsync 将图像数组转换为 base64
- r - 用多列中的多个值替换多个字符?R
- angular - Angular Guards:防止手动访问 URL 但授权刷新
- java - Java中的计算器,显示错误的功能。网豆
- regex - Notepad++ 中的 RegEx 查找管道少于或多于 n 个的行
- python - 根据文件名填充 NaN