我有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"
发布于 2015-12-30 09:27:47
这里有几个你可以使用的例子。我更喜欢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)
或使用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()
显然,您可以通过使用选项来更改图形!
发布于 2017-05-30 21:40:19
导入必要的R包:
require(ggplot2)
require(dplyr)
我创建了一个玩具data.frame来说明这一点:
df <- tribble(
~day, ~stock1, ~stock2,
1, 3, 5,
2, 2, 1,
3, -3, 7
)
现在,使用dplyr中的gather函数可以将数据转换为long格式:
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()
https://stackoverflow.com/questions/34520451
复制相似问题