利用Yahoo的金融数据在R上绘制时间序列图

我最近发现了发布在R Financial Time Series Plotting上的“即时投资组合”。如果你对它不熟悉,那么它很值得你花时间好好看一下。它不仅包含一些基于R的时间序列包(ts,zoo,xts)来绘制复杂投资组合的时间序列例子,而且还提供了有启发意义的和有历史性的远景来说明软件开发过程中的非线性性质。

下面的代码仅读取Yahoo金融上IBM和LinkedIn在2014年8月24日至2015年8月24日期间的股票价格,并给出了收盘价格。

#加载R包
library(ggplot2)
library(xts)
library(dygraphs)  

#从Yahoo金融上获取IBM和LinkedIn的股票数据  
ibm_url <- "http://real-chart.finance.yahoo.com/table.csv?s=IBM&a=07&b=24&c=2010&d=07&e=24&f=2015&g=d&ignore=.csv"  
lnkd_url <- "http://real-chart.finance.yahoo.com/table.csv?s=LNKD&a=07&b=24&c=2010&d=07&e=24&f=2015&g=d&ignore=.csv"  

yahoo.read <- function(url){  
   dat <- read.table(url,header=TRUE,sep=",")
   df <- dat[,c(1,5)]  
   df$Date <- as.Date(as.character(df$Date))  
   return(df)}

ibm  <- yahoo.read(ibm_url)
lnkd <- yahoo.read(lnkd_url)

ggplot(ibm,aes(Date,Close)) + 
  geom_line(aes(color="ibm")) +
  geom_line(data=lnkd,aes(color="lnkd")) +
  labs(color="Legend") +
  scale_colour_manual("", breaks = c("ibm", "lnkd"),
                      values = c("blue", "brown")) +
  ggtitle("Closing Stock Prices: IBM & Linkedin") + 
  theme(plot.title = element_text(lineheight=.7, face="bold"))

下面使用R中的dygraphs包来绘制可交互式的时间序列图。

# 绘制htmlwidget dygraphs
# dygraphs() 函数需要xts时间序列对象  
ibm_xts <- xts(ibm$Close,order.by=ibm$Date,frequency=365)  

stocks <- cbind(ibm_xts,lnkd_xts)

dygraph(stocks,ylab="Close", 
    main="IBM and Linkedin Closing Stock Prices") %>%
 dySeries("..1",label="IBM") %>%
 dySeries("..2",label="LNKD") %>%
 dyOptions(colors = c("blue","brown")) %>%
 dyRangeSelector()

本文整理自advanced tips,作者Joseph Rickert。转载请注明本文链接http://www.xueqing.cc/cms/article/53


你可能感兴趣的:(软件开发,library,LinkedIn,股票价格,投资组合)