'quantmod' 图形是面向对象的。数据存储在另一个环境中的环境(命名为“Env”)中(命名为您命名的任何名称,在本例中为“cspy”)。特殊的图表功能与数据一起存储在“原型”对象中。它是一种比在 R 中更常见的 S3 或 S4 编程范式中使用的更面向对象的方法。有关更多详细信息,应查阅“proto”包。在浏览了其中的代码chartSeries
及其创建的对象之后,我可以得到顶部的标签以消除此问题:
cspy <- chart_Series(SPY, name = NULL)
cspy$Env$actions[[4]] <- NULL
cspy
'quantmod' 代码有:
cs$Env$name <- name
text.exp <- c(expression(text(1 - 1/3, 0.5, name, font = 2,
col = "#444444", offset = 0, cex = 1.1, pos = 4)),
expression(text(NROW(xdata[xsubset]),
0.5, paste(start(xdata[xsubset]), end(xdata[xsubset]),
sep = " / "), col = 1, adj = c(0, 0), pos = 2)))
cs$add(text.exp, env = cs$Env, expr = TRUE)
...但我无法找出那片叶子的名字,所以我看了看:
cspy$Env$actions
...并看到名称和日期范围在第 4 项中。所以我只是删除了它。(仅去掉名称是微不足道的:chart_Series(SPY, name = NULL)
。(我不知道该图形项在对象中的位置是否一致,并且我没有看到访问该对象叶的方法,所以这可能是不稳定的黑客攻击。)
为边距文本(字幕)腾出空间:
png("out.png")
myoma <- par("oma")
myoma[1] <- 3
par("oma" =myoma)
cspy
title("S&P Index", cex.main = 2, font.main= 4, col.main= "blue")
mtext(text= "text1\ntext2\ntext3", side=1, cex = 0.75, font = 3, col = "red",line=7)
dev.off()