摘要: 抓取oracle,microsoft,apple,google的股票数据,画图,比较变化
#金融分析包,用来下载股票数据。下载下来是zoo对象,我先转成了dataframe
library(quantmod)
#Apple的数据
getSymbols("AAPL",src="yahoo",from="2013-01-01",to="2014-06-09")
APPL <- get("AAPL")
dataA <- as.data.frame(coredata(APPL))
dataA["date"] <- index(APPL)
#微软
getSymbols("MSFT",src="yahoo",from="2013-01-01",to="2014-06-09")
MESF <- get("MSFT")
dataM <- as.data.frame(coredata(MSFT))
dataM["date"] <- index(MSFT)
#oracle
getSymbols("ORCL",src="yahoo",from="2013-01-01",to="2014-06-09")
ORCL <- get("ORCL")
dataO <- as.data.frame(coredata(ORCL))
dataO["date"] <- index(ORCL)
#google
getSymbols("GOOGL",src="yahoo",from="2013-01-01",to="2014-06-09")
GOOGL <- get("GOOGL")
dataG <- as.data.frame(coredata(GOOGL))
dataG["date"] <- index(GOOGL)
#统计有多少行数据
totalLength <- length(dataG[,1])
#统计最大值
maxp <- c(max(dataA[,6]),max(dataM[,6]),max(dataO[,6]),max(dataG[,6]))
maxfinal <- max(maxp)
companyNames <- c("apple","ms","oracle","google")
library(ggplot2)
#画出数据第几行的图片
drawGG <- function(index){
temp <- data.frame("company"=companyNames,
"price"=c(dataA[index,6],dataM[index,6],dataO[index,6],dataG[index,6]),
"volume"=c(dataA[index,5],dataM[index,5],dataO[index,5],dataG[index,5]))
ggplot(temp,aes(company,price))+geom_bar(aes(fill=company),show_guide=F,stat="identity")+
labs(title=dataA[index,7],color="grey")+ylim(0,maxfinal)
}
#重复画多少次
drawRepeat <- function(totalLength){
for (i in 1:totalLength){
print(drawGG(i))
}
}
library(animation)
#开始画动画 nmax表示画多少张图,经实验 最多2000,取大了会报错
#ffmpeg为制作视频的软件,下载解压,给出地址就可以了。mp4格式经实验不行,这里用了avi
#-b 300k 表示图片质量,越大视频越清晰
oopts = ani.options(interval = 0.1,nmax=totalLength,ffmpeg = "D:/programfiles/ffmpeg/ffmpeg/bin/ffmpeg.exe")
saveVideo({
drawRepeat(totalLength)
},video.name = "test.avi", other.opts = "-b 300k")
ani.options(oopts)
#还可以画GIF ,SWF 但需要相应的软件支持,先安装ImageMagick,然后画GIF
saveGIF({
ani.options(nmax = 30,convert = shQuote('D:/programfiles/imagemagick/ImageMagick-6.8.9-3/convert.exe'))
drawRepeat(30)
}, interval = 0.1, movie.name = "test.gif", ani.width = 600, ani.height = 600)
效果图:
开源中国上传不了250k的图片 gif我就不传上来了
© 著作权归作者所有