使用PerformanceAnalytics的chart.TimeSeries无法显示区间阴影求助
解决chart.TimeSeries阴影区间不显示的问题
你遇到的阴影没显示的问题,核心是period.areas参数的格式没符合函数要求!这个参数需要的是包含「开始/结束日期对」的列表,而不是你现在用的带斜杠的字符串向量。
我帮你修正了代码,主要是把日期字符串转换成函数能识别的列表结构:
library(PerformanceAnalytics) library(xts) # 确保加载xts处理日期格式 # 原始日期区间字符串 cycles.dates <- c("2001-03/2001-11","2007-12/2009-06") # 转换为函数要求的列表格式:每个元素是两个日期的向量 period_list <- lapply(cycles.dates, function(x) { # 拆分字符串并转为Date类型 strsplit(x, "/")[[1]] %>% as.Date() }) # 加载数据并计算累积收益 data(edhec) R <- edhec[,"Funds of Funds",drop=FALSE] Return.cumulative <- cumprod(1+R) - 1 # 生成带阴影区间的图表 chart.TimeSeries(Return.cumulative, period.areas = period_list, period.color = "blue")
额外说明:
因为edhec数据集的索引默认是yearmon类型(比如Jan 1996),如果你想让日期匹配更精准,也可以用as.yearmon()来转换日期字符串:
period_list <- lapply(cycles.dates, function(x) { strsplit(x, "/")[[1]] %>% as.yearmon() })
这样调整后,阴影区间应该就能正常显示在图表上了~
内容的提问来源于stack exchange,提问作者Michael Gurkov
相关产品推荐
相关产品推荐

