相关疑难解决方法(0)

R:ggplot如果在for循环中,它不起作用,尽管它在它之外工作

我正在使用一个简单的ggplot函数,它在循环外工作正常,但即使迭代值不干扰ggplot函数也不在内部.为什么会这样?

这是我的代码

x=1:7
y=1:7
df = data.frame(x=x,y=y)
ggplot(df,aes(x,y))+geom_point()
Run Code Online (Sandbox Code Playgroud)

有用 !但是如果ggplot在for循环中...

for (i in 1:5) {
   ggplot(df,aes(x,y))+geom_point()
}
Run Code Online (Sandbox Code Playgroud)

......它不再起作用了!我错过了什么?

谢谢

for-loop r ggplot2

105
推荐指数
1
解决办法
6万
查看次数

从R函数中生成多个图形

我想使用ggplot图形从R中的函数中生成几个图形窗口...

testf <- function(a, b) {
  devAskNewPage(TRUE)
  qplot(a, b);
  # grid.newpage(recording = TRUE)
  dev.new()
  qplot(a, a+a);
  # grid.newpage(recording = TRUE)
  dev.new()
  qplot(b, b+b);
}

library(ggplot2)

x <- rnorm(50)
y <- rnorm(50)
testf(x, y)
Run Code Online (Sandbox Code Playgroud)

但是,dev.new()和grid.newpage()似乎都没有刷新前面的情节.

我知道,在R中,函数通常只生成他们评估的最后一件事,但我想更好地理解这个过程并了解任何可能的解决方法.

思考?

r ggplot2 r-faq

29
推荐指数
1
解决办法
4227
查看次数

ggarrange for 循环和 pdf 中的多页

这是我的问题:我正在循环我的数据。对于循环的每次迭代,我创建了 3 个在同一页面上组织的图,并且我希望每次迭代将一页存储在同一个 pdf 文件中。

我正在使用 ggpubr 包中的 ggarrange (我希望图 3 显示在第二行并跨越 2 列)。

这是我如何进行(在一些测试数据上):

我创建测试数据框:

tt <- data.frame(group=rep(c("A", "B"), 3), value=1:6)
tt2 <- data.frame(x=1:10, y=1:10)
Run Code Online (Sandbox Code Playgroud)

我在对象中创建和存储图:

p1 <- ggplot(tt, aes(x=group, y=value, fill=group)) +
    geom_dotplot(binaxis="y")
p2 <- ggplot(tt, aes(x=group, y=value, fill=group)) + geom_boxplot()
p3 <- ggplot(tt2, aes(x=x, y=y)) + geom_point()
Run Code Online (Sandbox Code Playgroud)

这有效:

pdf("test.pdf")
ggarrange(ggarrange(p1, p2),
        p3,
        nrow=2, 
        heights=c(2, 1)) 
dev.off()
Run Code Online (Sandbox Code Playgroud)

这不起作用(它不会引发错误,但 pdf 文件不包含任何页面):

pdf("test.pdf")
for(i in 1:2){
ggarrange(ggarrange(p1, p2),
        p3,
        nrow=2, 
        heights=c(2, 1)) 
}
dev.off()
Run Code Online (Sandbox Code Playgroud)

我想也许嵌套的 ggarrange 可能是一个问题,但这也不起作用:

pdf("test.pdf")
for(i in …
Run Code Online (Sandbox Code Playgroud)

for-loop r ggplot2 ggpubr

6
推荐指数
1
解决办法
3408
查看次数

R:无法保存情节

我正在生成一个我可以在RMarkdown输出中看到的情节,但每当我试图保存它时,我只得到一个空白(白色)图像.我只是在剧情之前和之后添加以下两行

png("Output.png")
#Plot code
dev.off()
Run Code Online (Sandbox Code Playgroud)

它工作正常.突然它停止了工作.有人可以帮我吗?

编辑

当我这样做的时候 pdf

pdf("output.pdf")
#plot code
dev.off()
Run Code Online (Sandbox Code Playgroud)

我收到的错误是:

There was error opening this document. This document cannot be opened because it has no pages. 
Run Code Online (Sandbox Code Playgroud)

谢谢.

plot r save ggplot2

2
推荐指数
1
解决办法
8893
查看次数

标签 统计

ggplot2 ×4

r ×4

for-loop ×2

ggpubr ×1

plot ×1

r-faq ×1

save ×1