将 ggplot 保存在函数中

2023-12-21

我正在尝试使用图形设备在函数中保存 ggplot。但我发现代码生成空图。下面是一个非常非常简单的例子。

library(ggplot2)
ff <- function(){
  jpeg("a.jpg")
  qplot(1:20, 1:20)
  dev.off()
}
ff()

如果我只运行函数的内容,一切都很好。我知道使用 ggsave() 会做我想要的事情,但我只是想知道为什么 jpeg() 加 dev.off() 不起作用。我用不同版本的 R 尝试过此操作,但问题仍然存在。


你应该使用ggsave而不是jpeg(); print(p); dev.off()顺序。ggsave是一个包装器,它完全按照您想要对您的函数执行的操作,只是它提供了更多选项和多功能性。您可以明确指定输出的类型,例如jpg 或 pdf,否则它会根据您的文件扩展名进行猜测。

所以你的代码可能会变成这样:

p <- qplot(1:20, 1:20)
ggsave(filename="a.jpg", plot=p)

See ?ggsave更多细节


代码中的原始行为不起作用的原因确实是一个常见问题(关于堆栈溢出 https://stackoverflow.com/questions/6675066/ggplots-qplot-does-not-execute-on-sourcing/6675610#6675610以及CRAN 上的 R 常见问题解答 http://cran.r-project.org/doc/FAQ/R-FAQ.html#Why-do-lattice_002ftrellis-graphics-not-work_003f)。您需要插入一个print打印情节的语句。在交互式控制台中,打印在后台静默执行。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将 ggplot 保存在函数中 的相关文章

  • 尽管提供了群落矩阵,纯素食 DBRDA 物种得分为空

    我使用纯素社区生态包在 R 中执行了 基于距离的冗余分析 dbRDA 我想在 dbRDA 结果的排序图中显示 鱼类 营养群体对样本之间差异 营养级鱼类组合的丰度数据 的相对贡献 IE 将箭头和营养级组名称叠加到排序图上 其中箭头线的长度表示
  • 在 R 中读取 Stata 13 文件

    有没有办法在 R 中读取 Stata 版本 13 数据集文件 我尝试执行以下操作 gt library foreign gt data read dta TEAdataSTATA dta 但是 我收到一个错误 read dta TEAdat
  • 正则表达式挑选括号之间的一些文本[重复]

    这个问题在这里已经有答案了 可能的重复 提取 R 中所有括号内的信息 正则表达式 https stackoverflow com questions 8613237 extract info inside all parenthesis i
  • 仅在具有重复块名称的另一个 Rmarkdown 文档中运行一个 Rmarkdown 文档中的代码

    我正在 Rmarkdown 中编写一系列相互补充的报告 我想将上一份报告的结果纳入我目前正在编写的报告中 我看到其他建议使用的问题purl从 Rmarkdown 文档中提取 R 代码然后运行它 所以我尝试了以下操作 r read previ
  • mclapply 用户时间大于已用时间

    我正在尝试使用mclapply的功能parallel封装在R 该函数通过计算对数似然距离将值分配给序列矩阵 这是一个 CPU 密集型操作 所结果的system time价值观令人困惑 gt system time mclapply work
  • 按绝对值排序

    有谁知道如何按绝对值对 R 中的向量进行排序 所以 2 3 1 gt 1 2 3 etc 如果我在 python 中这样做 我会创建一对每个值及其符号 按绝对值对对列表进行排序 然后重新应用符号 但我对 R 很陌生 所以不知道如何执行此操作
  • 如何用日语创建 ggplot2 标题?

    我正在准备日语演示文稿 并希望图像的标题和图例名称为日语 我可以让文本在 RStudio 中渲染得很好 但是当渲染图像时 日语字符仅显示为方框 x 10 10 y x x df data frame x y ggplot df aes x
  • R:使用管道将单个参数传递到函数中的多个位置

    我试图专门使用管道来重写以下代码 使用babynames包中的babynames数据 library babynames library dplyr myDF lt babynames gt group by year gt summari
  • 当子集长度为零时,如何简洁地处理子集?

    从向量中排除元素x x lt c 1 4 3 2 我们可以减去位置向量 excl lt c 2 3 x excl 1 1 2 这也是动态工作的 excl lt which x which max x gt quantile x 25 1 2
  • 如何在 Shiny 中动态渲染的 textInput 添加样式元素

    你好堆栈溢出 在我最近提出的问题中 我已经解决了一些与动态渲染 UI 元素相关的主要问题 并在一些了不起的人的帮助下动态创建了观察者 参见此处 动态渲染的 UI 如何在第二次运行时删除旧的反应变量 https stackoverflow c
  • 如何使用r中的dplyr在特定位置插入空白行

    我想在数据框中的特定位置插入空白行 我的数据框是这样的 dat lt data frame group c rep A 1 rep B 4 rep C 2 rep D 2 group 1 A 2 B 3 B 4 B 5 B 6 C 7 C
  • 使用亚毫秒日期时间从字符->POSIXct->字符准确转换

    我的文件中有一个字符日期时间列 我加载文件 到data table 并执行需要将列转换为的操作POSIXct 然后我需要写POSIXct值返回文件 但日期时间不会相同 因为打印不正确 这个打印 格式问题是众所周知的 并且已经被讨论过多次 我
  • for 循环与 cor.test 在许多类别上

    我正在尝试在 R 中编写一个循环 它将循环遍历 3 个不同的物种 以计算两个连续变量 Redness 和 VarNormAbund 之间的相关性 我的循环正在运行 但 3 个物种中每一个的输出都是相同的 这让我认为循环卡在第一个物种上 co
  • 如何根据查找表匹配多列

    我有以下两个数据框 lookup lt data frame id c A B C price c 1 2 3 results lt data frame price 1 c 2 2 1 price 2 c 3 1 1 我现在想要浏览所有列
  • 在 ggplot 中过滤管道 df

    我正在使用 dplyr 管道来清理我的 df 然后直接输入到 ggplot 中 但是 我只想一次只绘制一组 因此我需要过滤到该组 问题是 我希望比例保持不变 就好像所有群体都存在一样 是否可以在 ggplot 命令中进一步过滤管道 df 例
  • 绘制带有颜色渐变的geom_segment线? (或者还有另一种方法来强调开始与结束吗?)

    我的数据框中有大量行 100 000 的两组纬度和经度变量 我正在尝试绘制一个连接这两组坐标的图 即 从纬度1 经度1 to 纬度2 经度2 使用 geom segment 使用非常低的 alpha 使线条透明 因为线条太多 我想强调这些线
  • 替换rmarkdown/knitr/pdf中字幕的自动编号

    我正在使用 Rmarkdown 生成 PDF 文档 我想在其中手动定义图号 下面是一个块的示例 r chunk26 fig cap Fig 5 3 My figure caption plot 1 1 我使用特殊的编号来遵循文档的章节 问题
  • 一次评论多个对象

    假设您有一个变量 a 到 j 的列表 for x in 1 10 assign letters x x 您将如何评论那些最近创建的对象 我尝试过类似的事情 for x in 1 10 comment get letters x lt pas
  • R 在安装包依赖项时不考虑最大版本

    假设我正在开发一个名为magicr做一些统计魔术 我希望它使用另一个名为的包中的函数fairydust 假设 存在于 CRAN 上 很遗憾fairydust刚刚向 CRAN 发布了 2 0 0 版本 完全破坏了我计划使用的功能 所以我更新了
  • DT数据表中的列对齐

    In my shiny我正在使用的应用程序datatable函数来自DT库构建一个表格并希望将列居中对齐 我可以用formatStyle column textAlign center 但它只影响列体而不影响标题 我们必须设置columnD

随机推荐

  • 如何格式化 R Shiny numericInput?

    我有一个闪亮的应用程序 其中有很多numericInput字段 我想要一种格式化的方法numericInput每 10 3 之间用逗号分隔的字段 例如 我想要 5 000 000 而不是 5000000 我可以在 R 中使用format a
  • knitr 中的 dygraph 不起作用

    当尝试使用 Knit 在 R 中编织我的 dygraph 时 library dygraphs dygraph nhtemp main New Haven Temperatures gt dyRangeSelector dateWindow
  • Azure 门户看不到 DevOps 组织 [帐户问题?]

    我在将 Azure Web App 连接到 Azure DevOps 组织时遇到问题 我以某种方式设法为一个 Web 应用程序做到了这一点 通过选择创建一个新的 DevOps 项目 但现在很难设置一个新的 Web 应用程序来链接到同一个 D
  • 反应本机如何将图像和onpress添加到可触摸中

    我在反应本机中有可触摸的 在可触摸的内部我有图像并且在新闻上像这样
  • Keras 有没有办法立即停止训练?

    我正在为我的自定义提前停止回调tf keras训练 为此我可以设置变量self model stop training True在回调函数之一中 例如on epoch end 然而 Keras 仅在当前 epoch 完成时才停止训练 即使我
  • 在 Java 中从 JButton 拖放到 JComponent

    我在互联网上搜索了如何将 JButton 拖放到对象的示例 但我无法使其工作 我的程序所做的是 当我单击按钮时 对象更新了一个字段 使用选定的 object setField 我希望能够通过拖动 JButton 而不是单击来完成此操作 我怎
  • 赋值的左侧必须是变量[关闭]

    Closed 这个问题是无法重现或由拼写错误引起 help closed questions 目前不接受答案 对于以下方法 Override public void onCreateContextMenu ContextMenu menu
  • 找到第二大的元素

    在给定的数组中如何找到第二个 第三个 第四个或第五个值 另外 如果我们使用max python中的函数的复杂性顺序是多少 即与该函数相关的顺序max def nth largest li n li remove max li print m
  • VBA:字典内存问题?填充 dict、.removeall、填充问题

    因此 我在这里使用了一些代码 其中我使用一个字典来填充作为自定义类中的属性保存的两个不同的字典 我这样做是为了效率 注意 我有一个解决此问题的方法 即为我想要设置的每个属性使用字典 但这并不是太有效 大致这是我的代码 for iKey 1
  • ORDER_BY 日期 LIMIT 1 [重复]

    这个问题已经存在了 我有一个名为 notify 的表 其中包含 寻求者 捐赠者 日期 列 datetime 类型的日期列 它存储以下格式 YYYY MM DD HH MM SS我正在尝试从通知表中选择具有最新日期的 1 条记录 然后将该日期
  • WPF Datagrid selectitem = MVVM 中的 null

    我正在尝试使用 MVVM 模式来处理数据网格 问题是 每当我将绑定到 SelectedItem 的 VM 属性更改为 null 时 视图不会 取消选择 当前选定的项目 这是我在 xaml 中的绑定
  • 如何查找页面中的所有元素

    我知道有两种方法可以找到页面中的所有元素 document getElementsByTagName and document all 有更好的方法还是其中最好的方法之一 我正在制作一个元素选择器 主要用于练习 我想知道获取页面中所有元素的
  • 使用分类数据的Python堆积条形图

    我有一个 Pandas 数据框 1800 obs 看起来像这样 A B C D 1 CL0 CL1 CL2 CL0 2 CL2 CL1 CL1 CL3 3 CL3 CL2 CL0 CL1 n CL2 CL1 CL0 CL3 我想创建一个堆叠
  • 映射到 PetaPoco 中的集合?

    有没有办法将以下内容映射到Dictionary
  • 如何将“无”分配给 std::Optional

    阅读有关std optional http en cppreference com w cpp utility optional 我对分配值的标准方法感到困惑某物 and nothing to an optional I guess ope
  • 字典(键,值)顺序

    假设我有以下代码 var dictionary cat 2 dog 4 snake 8 mutable dictionary var keys dictionary keys var values dictionary values for
  • 良好的 Haskell 编码标准

    有人可以提供一个良好的 Haskell 编码标准的链接吗 我发现了this http urchin earth li ian style haskell html and this http www haskell org haskellw
  • 如何从 Linux x64 主机到 Linux arm64 交叉构建 flutter 应用

    我正在尝试从 linux x64 编译到 linux arm64 当我打字时flutter build linux target platform linux arm64我收到此错误 Cross build from Linux x64 h
  • PHP 星期几数字到星期几文本

    这可能真的很简单 但我找不到 PHP 函数来做到这一点 OK so dow numeric date w 给出星期几的数字 0 6 表示星期日到星期六 And dow text date D 给出文本星期几的 3 个字母缩写 Sun Mon
  • 将 ggplot 保存在函数中

    我正在尝试使用图形设备在函数中保存 ggplot 但我发现代码生成空图 下面是一个非常非常简单的例子 library ggplot2 ff lt function jpeg a jpg qplot 1 20 1 20 dev off ff