R GGplot无法识别分组变量

R GGplot无法识别分组变量,r,ggplot2,finance,R,Ggplot2,Finance,一个简单的ggplot练习已经变成了一个令人沮丧的经历…即,我想用ggplot从PerformanceAnalytics包中重新创建chart.Events函数,即创建一个事件日期向量后的累积回报图表。它在过去工作过几次,但由于某些原因,以下代码无法产生预期的结果: library(quantmod) library(ggplot2) library(timetk) library(dplyr) library(TTR) library(purrr) getSymbols("AAPL") Da

一个简单的ggplot练习已经变成了一个令人沮丧的经历…即,我想用ggplot从PerformanceAnalytics包中重新创建chart.Events函数,即创建一个事件日期向量后的累积回报图表。它在过去工作过几次,但由于某些原因,以下代码无法产生预期的结果:

library(quantmod)
library(ggplot2)
library(timetk)
library(dplyr)
library(TTR)
library(purrr)

getSymbols("AAPL")
Dates <- AAPL %>% timetk::tk_tbl(.) %>% dplyr::mutate(CC_Index = TTR::CCI(HLC(.),  n = 20, maType = "SMA")) %>%
dplyr::arrange(CC_Index) %>% dplyr::slice(n = 1:30) %>%  .$index

  purrr::map(match(Dates, AAPL %>% timetk::tk_tbl(.) %>% .$index), function(x) Willis %>% 
           dplyr::mutate(Returns = c(0, diff(log(Close))), Start = x)   %>%
           dplyr::slice(x:(x+20)) %>% dplyr::mutate(Cum_Returns = cumprod(1+.$Returns), indeks = 1:length(Time))) %>% 
           dplyr::bind_rows(.) %>%
           dplyr::select(indeks, Cum_Returns, Start)   %>% dplyr::group_by(Start) %>% 
           ggplot(.) + geom_line(aes(x = indeks, y = Cum_Returns, colour = Start))
库(quantmod)
图书馆(GG2)
图书馆(timetk)
图书馆(dplyr)
图书馆(TTR)
图书馆(purrr)
getSymbols(“AAPL”)
日期%timetk::tk_tbl(.)%%>%dplyr::mutate(CC_Index=TTR::CCI(HLC(.),n=20,maType=“SMA”)%%>%
dplyr::arrange(CC_Index)%%>%dplyr::slice(n=1:30)%%>.%.$Index
purrr::map(匹配(日期,AAPL%>%timetk::tk_tbl(.)%>%.$index)),函数(x)Willis%>%
dplyr::mutate(返回=c(0,diff(log(Close))),Start=x)%>%
dplyr::slice(x:(x+20))%%>%dplyr::mutate(Cum_Returns=cumprod(1+。$Returns),indeks=1:length(Time))%%>%
dplyr::绑定_行(%)%>%
dplyr::选择(索引、累计返回、开始)%%>%dplyr::分组依据(开始)%%>%
ggplot(.)+geom_线(aes(x=indeks,y=Cum_返回,颜色=Start))
当然,我想得到的是标准的“分散”图,它显示了一系列事件之后某项资产的累积回报。相反,我得到的是:


不知何故,它只是没有将起始列识别为分组列。我做错了什么?

你的环境中有什么
Willis
<代码>对象“Willis”未找到哦,对不起,Willis是AAPL%>%timetk::tk_tbl(.)…正在处理另一个数据集,但忘记更改代码。
ggplot
不理解
dplyr
group_by()
语句。使用
group_by
将永远不会改变绘图的外观。然而,ggplot确实有一个
aes(group=)
美学。然而,我认为问题在于,你想把Start当作一个因子而不是一个数值?也许你可以试试
color=factor(Start)
在你的
aes()
?@MrFlick,谢谢,
factor(Start)
工作得很好…预感整数类可能会有问题,因为我通常在字符上使用颜色,它不带
因子(.)
。你也可以删除
dplyr::group\u by(Start)
因为它在这里什么都不做。