如何在R中绘制具有多个时间序列的多个证券的图形

时间:2015-12-29 23:02:59

标签: r plot

我有5413家公司(作为专栏)和2000至2014年每日股票价格观察的时间段,3789是我的数据集中的观察计数。所以,现在我想绘制这些公司价格的图表,并绘制我在单独的数据框中创建的日志返回的图表。我将数据帧的某些部分说明如下

Date       A G L    ABA    ABB ABBEY 
2000-1-3    NA      NA      NA  NA
2000-1-4    79.5    325     NA  961  
2000-1-5    79.5    322.5   NA  945
2000-1-6    79.5    327.5   NA  952
2000-1-7    NA      327.5   NA  941  
2000-1-10   79.5    327.5   NA  946
2000-1-11   79.5    327.5   NA  888

和每日日志返回

 Date      A G L    ABA      ABB         ABBEY
  2000-01-04   NA           NA   NA           NA
  2000-01-05    0 -0.007722046   NA -0.016789481
  2000-01-06    0  0.015384919   NA  0.007380107
  2000-01-07   NA  0.000000000   NA -0.011621895
  2000-01-10   NA  0.000000000   NA  0.005299429
  2000-01-11    0  0.000000000   NA -0.063270826

我想绘制公司名称为Y轴,日期为X轴的图表,分别为我的数据框中的每个公司。我想表明股票价格系列中的趋势或平稳性已被日志返回删除 我尝试了plot.ts(Price),但它返回

Error in plotts(x = x, y = y, plot.type = plot.type, xy.labels = xy.labels,  : 
  cannot plot more than 10 series as "multiple"

2 个答案:

答案 0 :(得分:0)

所以这里有一些你可以使用的例子。我更喜欢ggplot2,但这取决于你: - )

data <- read.table(text="
Date       AGL    ABA    ABB ABBEY 
2000-1-3    NA      NA      NA  NA
2000-1-4    79.5    325     NA  961  
2000-1-5    79.5    322.5   NA  945
2000-1-6    79.5    327.5   NA  952
2000-1-7    NA      327.5   NA  941  
2000-1-10   79.5    327.5   NA  946
2000-1-11   79.5    327.5   NA  888",
  header = TRUE)

格式化您的日期

data$Date <- as.Date(data$Date)

然后使用你的情节函数

plot.ts(data)

enter image description here

或与ggplot2

library(ggplot2)
ggplot(data=data, aes(x=Date, y=AGL)) + geom_line() + geom_line(data=data, aes(x=Date, y=ABA), color="red") + geom_line(data=data, aes(x=Date, y=ABBEY), color="green") + theme_bw()

enter image description here

显然你可以通过玩选项来改变图形!

答案 1 :(得分:0)

导入必要的R包:

require(ggplot2)
require(dplyr)

我创建了一个玩具data.frame来表达观点:

   df <- tribble(
         ~day, ~stock1, ~stock2,
         1,       3,        5,
         2,       2,        1,
         3,       -3,       7
       )

现在,使用 dplyr 中的收集功能,您可以将数据转换为格式:

df2 <- df %>% gather(stock1:stock2, key = 'stock', value= 'price')

使用 ggplot2 制作情节:

ggplot(df2, aes(day, price, color = stock)) + geom_line()

或者,您可以一步完成:

df %>% gather(stock1:stock2, key = 'stock', value= 'price') %>%
  ggplot(aes(day, price, color = stock)) + 
  geom_line()