我在chart_Series
中调整字幕时出现问题。
目前它只是写在x轴的顶部。
也可以关闭自动写在a顶部的文本
chart_Series
图表,以便我可以用我自己的
library(quantmod)
getSymbols("SPY", from="2013-01-01", to=Sys.Date())
chart_Series(SPY)
title("S&P Index", sub = "text1\n\text2\ntext3",
cex.main = 2, font.main= 4, col.main= "blue",
cex.sub = 0.75, font.sub = 3, col.sub = "red")
我很感激你的帮助。
答案 0 :(得分:3)
' quantmod'图形是面向对象的。数据存储在另一个环境(命名为您命名的任何环境,在这种情况下为cspy')中的环境(名为“Env'”)中。特殊图表功能与数据一起存储在“原型”对象中。这是一种比在S3中更常见的S3或S4编程范例中使用的面向对象的方法。有关详细信息,应参考原始' -package。在找到chartSeries
中的代码及其创建的对象后,我可以在顶部获取标签以消除此问题:
cspy <- chart_Series(SPY, name = NULL)
cspy$Env$actions[[4]] <- NULL
cspy
&#39; quantmod&#39;代码有这个:
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)
。(我不知道对象中该图形项的位置是否一致,我没有看到访问该对象的方法-leaf,所以这可能是一个不稳定的黑客。)
为边距文本(副标题)腾出空间:
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()
答案 1 :(得分:1)
我不熟悉之前的chart_Series
情节。通常情况下,我会使用绘图参数mar
来增加绘图底部的边距,为子标题腾出更多空间。但是,我没有设法以这种方式增加保证金。相反,我不得不使用oma
来增加情节的外边距。我使用mtext
添加了子标题,而不是使用sub
中的title
参数。您可以使用line
设置绘图的距离。通过设置chart_Series
关闭默认name = NULL
标题。另请注意?chart_Series
中的“注释”:“高度实验性(读取:alpha)请谨慎使用。”无论如何,
par(oma = c(5, 0, 0, 0))
chart_Series(SPY, name = NULL)
title("S&P Index", cex.main = 2, font.main = 4, col.main = "blue")
mtext(text = "text1\n\text2\ntext3",
side = 1, line = 9, cex = 0.75, font = 3, col = "red")