gpt4 book ai didi

r - 打印在RStudio中使用R Markdown在函数中生成的图

转载 作者:行者123 更新时间:2023-12-04 04:18:25 25 4
gpt4 key购买 nike

我正在尝试使用R Studio中的R-Markdown功能,在那里我试图打印在函数内部生成的图。这是我要尝试的基本示例。

**Test printing plots generated in a function**
================================================

``` {r fig.width=8, fig.height=4, warning=FALSE, eval=TRUE, message=FALSE, tidy=TRUE, dev='png', echo=FALSE, fig.show='hold', fig.align='center'}
dat <- data.frame(x=c(1:10),y=c(11:20),z=c(21:30),name=rep(c("a","b"),each=5))
library(ggplot2)

ex <- function(data){

plot(data[,1],data[,2])
plot(data[,1],data[,3])
}

for (i in 1:10){
t1 <- rbind(i,ex(dat))
}
t1
```

那些测试此代码的人,请确保将其保存为“.Rmd”文件,然后在RStudio工具栏中运行knithtml()。上面的这段代码与我想要的html输出完全一样。但是,当我用基于ggplot的代码替换基本绘图功能时,我无法获得knithtml()来生成我之前获得的10个绘图的ggplot输出。上面的基本绘图代码现在由以下代码替换
  p1 <- ggplot(data=data, aes(x=data[,1],y=data[,2]))
p1 <- p1+geom_point()
p1

我在这里错过了一些很简单的事情吗?

VJ

最佳答案

您的代码中有两个问题:

  • ggplot无法识别数据x和y数据,因为它可以在数据环境中工作。您应该直接为其指定列名称。
  • yur循环中的代码没有意义。您不能将图形与索引混合使用...(它与基本图形一起工作的原因是通过副作用),我已将其替换为简单的plot命令。

  • 以下将起作用:
    **Test printing plots generated in a function**
    ================================================

    ``` {r fig.width=8, fig.height=4, warning=FALSE, eval=TRUE, message=FALSE, tidy=TRUE, dev='png', echo=FALSE, fig.show='hold', fig.align='center'}
    dat <- data.frame(x=c(1:10),y=c(11:20),z=c(21:30),name=rep(c("a","b"),each=5))
    library(ggplot2)

    ex <- function(data){
    p1 <- ggplot(data=data, aes(x=x,y=y))
    p1 <- p1+geom_point()
    return(p1)
    }

    for (i in 1:2){
    plot(ex(dat))
    }

    ```

    关于r - 打印在RStudio中使用R Markdown在函数中生成的图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11436259/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com