QuantMod :: ChartSeries () в цикле не работает должным образом - PullRequest
0 голосов
/ 21 октября 2018

Почему в результате получается 8-страничный PDF, а не 1-страничный PDF с 8 диаграммами?

library(quantmod)
s = c("AAL","DAL","UAL","LUV","FDX","ALK","JBLU","HA") 
x <- list()

### get symbols
for (i in s) { x[[i]] <- getSymbols(i, src="yahoo", auto.assign=FALSE, return.class="xts") }

### create pdf
pdf('foo.pdf')
par(mfrow = c( 4, 2 ) )
for (i in x) { chartSeries(i) }
dev.off()

enter image description here

1 Ответ

0 голосов
/ 30 октября 2018

Вы можете использовать lapply и chart_Series, чтобы получить несколько графиков на 1 странице:

pdf(file = "charts.pdf")
par(mfrow=c(4,2))
lapply(x,function(x) chart_Series(x))
dev.off()

Изменить, чтобы получить символы тикера:

Чтобы поставить правильные имена тикеров надиаграммы вы можете добавить аргумент name в chart_Series следующим образом:

name = unlist(strsplit(names(x[[1]])[1],'[.]'))[1]

enter image description here

...