我有一个函数可以执行一些操作,然后根据条件进行绘图:
f <- function(n) {
rand <- rnorm(n)
no <- seq_len(n)
df <- data.frame(no=no, rand=rand)
if (n > 10) {
png("plot.png")
p <- ggplot(df)
p + geom_point(aes(x=no, y=rand))
dev.off()
}
}
f(11)
最后我得到一个空白的 png 文件。这里发生了什么?
根据回复,有两种解决方案:
library(ggplot2)
f <- function(n) {
rand <- rnorm(n)
no <- seq_len(n)
df <- data.frame(no=no, rand=rand)
if (n > 10) {
png("plot.png")
print({
p <- ggplot(df)
p + geom_point(aes(x=no, y=rand))
})
dev.off()
}
}
f(11)
注意:我知道我需要使用print()
,但我尝试的方法不起作用,因为它没有放置在正确的位置。
另外,我也尝试过ggsave
之前的选项,但这也不起作用。当然,现在它也能工作了。它似乎也比使用具有更好的分辨率png()
:
library(ggplot2)
f <- function(n) {
rand <- rnorm(n)
no <- seq_len(n)
df <- data.frame(no=no, rand=rand)
if (n > 10) {
p <- ggplot(df)
p + geom_point(aes(x=no, y=rand))
ggsave(file="plot.png")
}
}
f(11)
谢谢大家。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)