繁体   English   中英

如何在R编程中在plot()上添加legend()

[英]How to add legend() on plot() in R programming

我运行这些代码:

library("quantmod")
symbols = c('^VLIC', 'GE', 'KO', 'AAPL', 'MCD')
getSymbols(symbols, src='yahoo', from="2012-02-01", to="2013-02-01")

#obtain adjusted closed
VLICad = VLIC$VLIC.Adjusted
GEad = GE$GE.Adjusted
KOad = KO$KO.Adjusted
AAPLad = AAPL$AAPL.Adjusted
MCDad = MCD$MCD.Adjusted

#compute cumulative sum (cumsum) of daily returns (Delt)
#Remove first term of the series, with [-1,], since cumsum is not defined for it.

vl = cumsum((Delt(VLICad)*100)[-1,])
ge = cumsum((Delt(GEad)*100)[-1,])
ko = cumsum((Delt(KOad)*100)[-1,])
ap = cumsum((Delt(AAPLad)*100)[-1,])
md = cumsum((Delt(MCDad)*100)[-1,])

###range of values for the plot
lim = c(min(vl, ge, ko, ap, md), max(vl, ge, ko, ap, md))
plot(vl, main="", ylim=lim, xlab="dates", ylab="% benefits")
lines(ge, col="green")
lines(ko, col="red")
lines(ap, col="violet")
lines(md, col="yellow")

legend(x = "topleft", 
       cex = 0.4,c("VLIC", "GE", "KO", "AAPL", "MCD"), 
       lty = "l", 
       col = c("black", "green", "red", "violet", "yellow"), 
       text.col = c("black", "green", "red", "violet", "yellow"))

我可以产生这样的结果:

结果图像

但是我无法得到图例,这意味着最后一行代码不起作用?

由于vl具有xts类,因此当您调用通用函数plot ,将调度plot.xts方法。 legend在xts绘图中的xts::addLegend ,但是xts::addLegend可以。 尝试这个:

colvec <- c("black","green","red","violet","yellow")
xts::addLegend(legend.loc="topleft", legend.names=c("VLIC","GE","KO","AAPL","MCD"), 
               lty = 1, col=colvec, text.col=colvec, bg="white", bty=1)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM