【问题标题】:ggsave creates an empty png fileggsave 创建一个空的 png 文件
【发布时间】:2020-06-21 04:51:36
【问题描述】:

我正在尝试保存使用以下代码创建的绘图,但始终得到一个空的 .png 文件。我重用了一些现有代码来创建绘图,并导入 tidyverse 以访问许多函数,包括 ggsave()。为什么 ggsave() 不创建带有散点图和重叠线的 png 文件,这两者都在我的 Rstudio 图形窗口中可见?为什么它却始终创建一个空的 .png 文件?我做错了什么?

    # Regress 10-year S&P return versus Fwd_EY and Fwd_EY^2

plot(data$Fwd_EY, data$SPRet, pch = 16, col = "blue", xlab = "E_t+1/P", ylab = "10-year Return")
fit <- lm(data$SPRet ~ data$Fwd_EY)

# Use predict to calculate predicted returns
predict_ret <- predict(fit, data) 

# abline doesn't work; plot predicted returns as a separate line
lines(data$Fwd_EY, predict_ret, col = "gold4", type = "b", cex = 0.7) 

#Now save the plot using ggsave
ggsave(filename = "C:/Temp/SP10YrVsForwardPE.png", device = png())
dev.off()

真诚的

托马斯·飞利浦

【问题讨论】:

  • 也许你忘了添加plot = last_plot() 或者你给你的情节一个name 并用namelast_plot() /i>。只要您在文件名中指定 png,您也可以保留 device 调用。你不需要dev.off()

标签: r ggplot2 ggsave


【解决方案1】:

尝试使用

# Instantiate the plot object
png('C:/Temp/SP10YrVsForwardPE.png')

# Regress 10-year S&P return versus Fwd_EY and Fwd_EY^2
plot(data$Fwd_EY, data$SPRet, pch = 16, col = "blue", xlab = "E_t+1/P", ylab = "10-year Return")
fit <- lm(data$SPRet ~ data$Fwd_EY)

# Use predict to calculate predicted returns
predict_ret <- predict(fit, data) 

# abline doesn't work; plot predicted returns as a separate line
lines(data$Fwd_EY, predict_ret, col = "gold4", type = "b", cex = 0.7) 

dev.off()

它利用内置方法而不是 ggsave。

【讨论】:

  • 工作就像一个魅力 - 感谢磨坊。有趣的是,它既会在我的屏幕上绘图,又会写入文件,这似乎有点神秘。是否有一个简单的解释来解释为什么两者兼而有之?
  • @ThomasPhilips 此方法用于将绘图保存到磁盘,ggsave 也是如此。不确定如何实际实现其中一个。
  • @ThomasPhilips 如果答案符合您的情况,请考虑接受答案
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-06-25
  • 2013-06-20
  • 2018-01-18
  • 2010-10-19
  • 2011-12-07
  • 2017-12-02
相关资源
最近更新 更多