如何使用R语言plotly为两条时间序列之间的区域填充颜色
R Plotly双时间序列区域填充实现方案
直接给出修改后的完整可运行代码:
library(plotly) annee = c("2018-05-01", "2018-04-30", "2018-04-29", "2018-04-28" ,"2018-04-27", "2018-04-26", "2018-04-25", "2018-04-24", "2018-04-23", "2018-04-22", "2018-04-21", "2018-04-20", "2018-04-19", "2018-04-18", "2018-04-17", "2018-04-16","2018-04-15", "2018-04-14", "2018-04-13", "2018-04-12", "2018-04-11", "2018-04-10", "2018-04-09", "2018-04-08", "2018-04-07", "2018-04-06", "2018-04-05", "2018-04-04") mean = c(8.519167, 9.776667, 12.222083, 13.131250, 14.100000, 12.697917, 16.212500, 16.306667, 15.775417, 17.623750, 17.972083, 17.370000, 17.143048, 15.642917, 13.629167, 12.362083, 12.315833, 11.052917, 9.589167, 8.639167, 8.958750, 9.247500, 11.083750, 12.591667, 13.534583, 10.928750, 9.026667, 10.365833) z = c(13.148313, 12.323909, 11.909722, 11.625099, 12.135710, 12.534321, 13.316563, 14.062893, 14.244242, 13.623607, 13.440273, 12.869940, 12.583036, 12.657410, 12.901756, 13.228886, 13.829746, 13.790623, 13.805771, 13.610033, 12.621674, 11.360067, 10.022024, 8.929100, 8.359593, 8.035119, 7.409528, 7.145040) m = data.frame(annee, mean, z) plot_ly(m) %>% add_lines(type = 'scatter', mode = "lines", name = "均值", yaxis = 'y2', x = ~annee, y = ~mean, line = list(color = '#CC79A7')) %>% add_lines(type = 'scatter', mode = "lines", name = "Z值", yaxis = 'y2', x = ~annee, y = ~z, line = list(color = 'red'), # 新增填充参数 fill = "tonexty", fillcolor = "rgba(204, 121, 167, 0.3)")
修改说明
- 修正了原代码x轴引用错误:原代码中x轴使用
~date,但数据框中日期列实际名称为annee,修改后可正常加载数据 - 新增填充配置:在第二条折线的
add_lines中添加两个参数fill = "tonexty":指定填充当前折线与上一条折线之间的区域fillcolor:自定义填充色,这里使用与第一条折线同色系的半透明颜色,透明度可以通过最后一位数值(0-1区间)调整,数值越大填充色越深
- 优化了图例命名:将两个系列的name分别修改为对应含义,避免重复,可根据实际需求自定义名称
内容的提问来源于stack exchange,提问作者Nathancia971
相关产品推荐
相关产品推荐

