gpt4 book ai didi

r - 脚本中的 ggplot 绘图不会在 Rstudio 中显示

转载 作者:行者123 更新时间:2023-12-03 05:30:30 24 4
gpt4 key购买 nike

我在使用 Rstudio 时遇到一个奇怪的问题:如果脚本调用 ggplot2 函数来显示绘图,则使用 Source 运行脚本不会生成绘图。如果我使用 Ctrl+A 选择整个脚本,然后运行当前行或选择 (Ctrl+Enter),然后绘制 >确实显示。同样,在控制台中输入绘图命令会产生正确的输出。

例如:

library(ggplot2)

p = ggplot(mtcars, aes(wt, mpg))
p + geom_point()

仅在粘贴到控制台时才会产生输出,而在获取源时不会产生输出。

还有其他与此相关的问题,但都没有帮助:

如何让 Rstudio 在获取脚本时显示绘图?我正在使用 Rstudio 0.98.1062 和 R 3.1.1。

最佳答案

解决方案是在 ggplot 对象上显式调用 print():

library(ggplot2)

p <- ggplot(mtcars, aes(wt, mpg))
p <- p + geom_point()
print(p)

ggplot 函数返回 ggplot 类的对象; ggplot2 通过重载 print 函数来工作,以在 ggplot 类的对象上表现出不同的行为 - 它不是将它们打印到 STDOUT,而是创建图表。

在交互模式下一切都运行良好,因为 R 假设大多数命令都是通过 print() 函数运行的。这是为了我们的方便,并允许我们输入 rnorm(1) 并获得任何可见的输出。当使用“运行当前选择”命令 (Ctrl+Enter) 时,RStudio 的行为就像在交互模式下键入每个选定行并运行一样。您可以在运行几行选定的行后通过在控制台 Pane 中检查命令历史记录来验证这一点。

但是当source()读取文件时,这种方便的模式就被放弃了。由于此函数旨在运行(可能很长且计算成本较高的)R 脚本,因此不希望用低优先级消息污染 STDOUT。这就是为什么 source() 默认情况下只输出错误消息。如果您想要其他东西,您必须明确提出要求。

关于r - 脚本中的 ggplot 绘图不会在 Rstudio 中显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26643852/

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