R:使用ggplot2和lapply生成多个条形图:如何根据列表插入字幕?

2024-02-26

我的目标是生成并保存几个条形图lapply and ggplot2。为此,我根据我的数据创建了一个列表。现在,除了字幕之外,一切都正常:我想将列表元素的名称插入到图表中。到目前为止,我只能插入第一个元素的名称。

我找到了另一篇文章,这对我到目前为止有很大帮助。我是新来的,所以我希望我以正确的方式发布这个问题(我还没有找到与其他帖子相关的选项)。

我改编了这段代码这个问题 https://stackoverflow.com/questions/34241954/saving-plots-within-lapply因为我对那里提供的案例有一个后续问题。

###creating some random data:

df <- data.frame(value = floor(runif(20,min=0,max=30)), 
                 Intervall = paste("Intervall",rep(1:10,2)), type = rep(c("a", "b")))

list1 <- split(df, df$type)

###producing plots with lapply and ggplot

plots <- lapply(list1, function(x) {
                       ggplot(x, aes(Intervall, value)) + 
                        geom_bar(stat="identity") + 
                        labs(title="Intervalle", subtitle =names(list1))})
lapply(names(plots), 
       function(x) ggsave(filename=paste(x,".emf",sep=""), plot=plots[[x]]))

我的列表中的元素称为a and b。现在第一张图应该有副标题"a",第二个图的副标题"b".

我怎样才能这样做呢? (另外,在保存之前如何首先在控制台中查看我的绘图?)

With names(list1) "a"成为两个图表的副标题......


该问题与第二个命令无关。它来自“情节”的创造。在里面subtitle,我们正在传递整个names(list1)而不是相应的元素。如果我们循环遍历names'list1',更容易获得每个列表元素对应的名称,而且list可以基于相同的名称进行子集化

plots <- lapply(names(list1), function(nm) {
                       ggplot(list1[[nm]], aes(Intervall, value)) + 
                        geom_bar(stat="identity") + 
                        labs(title="Intervalle", subtitle =nm)})
names(plots) <- names(list1)

现在,我们使用与 OP 中相同的命令(更改了.emf to .png

lapply(names(plots), function(nm) ggsave(filename =
       paste(path, nm, ".png", sep=""), plot = plots[[nm]]))

-plots

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

R:使用ggplot2和lapply生成多个条形图:如何根据列表插入字幕? 的相关文章

随机推荐

  • Java FileWriter如何写入下一行

    我使用下面的代码将记录写入文件 记录可以写入文件中 但附加在一行中 每次我调用此方法示例 你好世界你好世界你好世界你好世界 如何修改代码 使输出如下所示 以便在读取文本时我可以使用 line hasNextLine 进行检查 你好世界你好世
  • 最新的(开源)聊天机器人/假人工智能?

    开源聊天机器人 假人工智能 技术 的最新进展是什么 ELIZA ALICE MegaHAL 仍然是 当前 吗 或者在过去十年中是否取得了任何进展 ChatScript 是我发现的用于开发会话代理的最佳开源工具 BSD 许可证 https g
  • 动态添加内容到面板

    可能是我的 javascript 能力不够 我正在尝试将列表 通过 javascript 添加项目 动态增强到 jquery 移动面板 下面的代码是该功能的工作 非工作 示例 完整的项目会有点太多的开销 并且您需要一些串行连接的设备来运行它
  • 未来 F# 是否有可能比其他 .Net 语言得到更多优化?

    Microsoft 是否有可能使 F 程序在 VM 执行时或更可能在编译时检测到程序是使用函数式语言构建的并自动更好地并行化它 现在我相信没有这样的努力来尝试和自动执行作为单线程程序构建的程序作为多线程程序 也就是说 开发人员将编写一个单线
  • 对自定义对象的向量进行排序

    我正在尝试在 java 中对 Vector 进行排序 但我的 Vector 不是 int 向量 它是对象向量 对象是 public MyObject numObj 0 price new Price pax new Pax 所以我有一个Ve
  • CodeRush 中自动添加 `using`

    我刚刚安装了 Visual Studio 的 CodeRush Pro 评估试用版 到目前为止我可以说我非常喜欢它 与 Resharper 相比 我真正缺少的只是一种功能 这就是 CodeRush 处理的方式using 当我输入一些未在 u
  • NextJs 错误的解决方案是什么:“标题元素收到一个包含超过 1 个元素作为子元素的数组。”

    创建一个组件来包装每个页面并希望接收每个页面的子级和标题会引发错误 标题元素收到一个包含超过 1 个元素作为子元素的数组 import Head from next head interface IProps children JSX El
  • Angular 2 - 通过路由器链路将对象从一个组件发送到另一个组件

    我试图通过路由器链路以角度 2 发送一个对象 我为人员数组人员中的每个人员对象创建一个人员配置文件组件 并将它们显示在屏幕上 div div
  • 捆绑组件的 currentinstance 值为 null

    Version 3 0 0 beta 18 复制链接 https github com anandkumarram vue3lib https github com anandkumarram vue3lib https github co
  • 在 Zend Framework 2 中处理 M-N 关系

    在 beta4 和最新的 beta5 中 DB 功能实现似乎已经基本完成 有几个教程如何使用 TableGateway 模式处理单个数据库 但似乎没有用于处理 M N 关系的教程 在 ZF1 中我们有findDependantRowset
  • 如何在 Roblox Studio 中优化 If 语句的过度使用

    此代码的目标是在 5 个预设位置之一随机生成一个球 GlowyBall 当玩家点击按钮时 该脚本就会激活 球还需要随机生成 3 种颜色中的一种 该代码在大部分情况下都有效 但在优化该代码时我遇到了困难 我不知道应该甚至可以使用哪种数据类型来
  • jQuery 使用数据库的 ajax 从元素中删除 ID 并刷新

    你好 目前我正在尝试使用 jQuery 来使用 ajax 获取多个字段的 id 并发送数据以通过 php 删除它 到目前为止 我能够删除该项目 但无法删除其他 id 例如 我有一个 for 循环 它将从数据库中获取信息 for i 0 i
  • 如何阻止用户在我的网站上水平滚动

    这是网站 http joshnh com http joshnh com 基本上 我有一些超宽的元素 这样它们看起来就像是从屏幕的右侧出来的 然后我正在使用overflow x hidden 在主体上隐藏溢出 但这并不能阻止页面在用户使用触
  • 解析不带引号的键的 JSON

    据我所知 在 JSON 中 键应该用双引号引起来 但是 我使用的数据源没有引用它们 这导致 Ruby JSON 解析器引发错误 有没有办法执行 非严格 解析 Example gt gt JSON parse name hello age 2
  • 如何将带有 unsigned char* 的结构从 C# 传递到 C++?

    我有一些C dll带有结构描述和一些方法 struct MSG STRUCT unsigned long dataSize unsigned char data 和功能例如 unsigned long ReadMsg unsigned lo
  • Vue js动态添加属性不响应

    我有一个组件显示有一个名为obj obj有两个属性 obj title and obj body 每个都绑定到一个文本字段 以便具有反应性和可编辑性 div div
  • 如何在 C# 中截取 Winforms 控件/表单的屏幕截图?

    我有一个listviewwinforms 窗体上的控件 它填满了整个屏幕 但其中的项目超出了屏幕可以显示的范围 如何截取整个控件的屏幕截图 就好像我可以显示控件的全部内容一样listview在屏幕上 所以如果整个listview需要 100
  • 在 MySQL2 gem 中使用准备好的语句?

    如何创建准备好的语句insert and selectMySQL 中的查询 我正在使用 MySQL2 gem 我的连接对象如下所示 con Mysql2 Client new host gt ENV DB HOST port gt 3306
  • 如何从 Repeater 获取更新的 Textbox 值?

    我有一个repeater控制如下所列 它有一个textbox控制 当一个save button单击后 我需要从文本框中获取更新的文本 我有以下代码 但当我获取文本框文本时 它给了我旧值 我们怎样才能得到更新后的文本呢 代码隐藏 protec
  • R:使用ggplot2和lapply生成多个条形图:如何根据列表插入字幕?

    我的目标是生成并保存几个条形图lapply and ggplot2 为此 我根据我的数据创建了一个列表 现在 除了字幕之外 一切都正常 我想将列表元素的名称插入到图表中 到目前为止 我只能插入第一个元素的名称 我找到了另一篇文章 这对我到目