Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用plotly in R在时间序列中绘制多个序列/线?_R_Ggplot2_Time Series_Plotly_Timeserieschart - Fatal编程技术网

如何使用plotly in R在时间序列中绘制多个序列/线?

如何使用plotly in R在时间序列中绘制多个序列/线?,r,ggplot2,time-series,plotly,timeserieschart,R,Ggplot2,Time Series,Plotly,Timeserieschart,我有一个几年的时间序列,我需要在x轴上绘制mm/dd,在y轴上使用plot\ly绘制多年。我在这里生成了一个示例数据: date<-seq(as.Date("2010-11-22"),as.Date("2016-05-26"),by ="days") sales = runif(2013, 2000, 6000) df = data.frame(date,sales) 现在,我尝试使用plot\u ly绘制多个y轴: plot_ly(df, x = ~date) %>% add_

我有一个几年的时间序列,我需要在x轴上绘制mm/dd,在y轴上使用plot\ly绘制多年。我在这里生成了一个示例数据:

date<-seq(as.Date("2010-11-22"),as.Date("2016-05-26"),by ="days")
sales = runif(2013, 2000, 6000)
df = data.frame(date,sales)

现在,我尝试使用
plot\u ly
绘制多个y轴:

plot_ly(df, x = ~date) %>% add_lines(y = ~sales, 
df$date <= "2010-12-31",color=I("red")) %>% 
             add_lines(y = ~sales, df$date <= "2013-12-31" & 
             df$date >= 2013-01-01, color = I("green"))
plot\u ly(df,x=~date)%>%添加线(y=~sales,
df$日期%
添加_行(y=~销售额,df$date=2013-01-01,颜色=I(“绿色”))
但我搞错了情节:

那有什么错

我想要这样的情节:


要在同一个图形上创建不同的线,我们必须使用
plotly::group_by
df
分成一组。在您的情况下,这是通过使用
lubridate
按年份分割来实现的:

library(plotly)
library(lubridate)
date <- seq(as.Date("2010-11-22"), as.Date("2016-05-26"), by = "days")
# Add some variations to distinguish lines
sales <-  runif(2013, 10, 20) + year(date) * 5 + yday(date) / 5
df <-  data.frame(date, sales)


df %>% 
  mutate(year = year(date)) %>% 
  group_by(year) %>% 
  plot_ly(x = ~ yday(date)) %>% 
  add_lines(y = ~ sales, 
            color = ~ factor(year)
            ) 
library(plotly)
图书馆(lubridate)
日期%
绘图(x=~yday(日期))%>%
添加_行(y=~销售额,
颜色=~系数(年)
) 

你指的是多个系列(而不是y轴);对吗?就像上一张图片一样,x轴上的mm/dd与每年不同颜色的销售额。你能在x轴上绘制mm/dd而不是日数吗?你能看看我的问题吗?谢谢!
library(plotly)
library(lubridate)
date <- seq(as.Date("2010-11-22"), as.Date("2016-05-26"), by = "days")
# Add some variations to distinguish lines
sales <-  runif(2013, 10, 20) + year(date) * 5 + yday(date) / 5
df <-  data.frame(date, sales)


df %>% 
  mutate(year = year(date)) %>% 
  group_by(year) %>% 
  plot_ly(x = ~ yday(date)) %>% 
  add_lines(y = ~ sales, 
            color = ~ factor(year)
            )