示例代码:
df_2=as.data.frame(c(1:10))
rownames(df_2)=Sys.Date()+c(1:10)
xts_2=as.xts(df_2)
vline=.index(xts_2)[4]
{
png(filename = paste0(Sys.Date(),'-test',".png"), width = 800, height = 600)
plot(xts_2[,1])
print(dev.cur())
abline(v=vline, col="red")
dev.off()
}
如果我从png ... dev.off()中选择行并运行,我会得到所需的输出文件。
但是如果我选择了大括号来运行序列(例如,如果满足条件就运行),我会收到错误:
Error in int_abline(a = a, b = b, h = h, v = v, untf = untf, ...) :
plot.new has not been called yet
两种情况下print(dev.cur())行的结果是:
png
2
答案 0 :(得分:0)
大括号禁止自动打印,类似于plot()
循环或函数中的for
调用。你可以通过明确打印图来解决这个问题。
{
png(filename = paste0(Sys.Date(),'-test',".png"), width = 800, height = 600)
print(plot(xts_2[,1]))
print(dev.cur())
abline(v=vline, col="red")
dev.off()
}