在ggplot2中使用for循环排列多个图表

2024-01-15

我想生成一个 pdf 文件,其中显示多个图表,每个图表一个NetworkTrackingPixelId。 我有一个与此类似的数据框:

> head(data)
  NetworkTrackingPixelId                           Name       Date Impressions
1                   2421                    Rubicon RTB 2014-02-16      168801
2                   2615                     Google RTB 2014-02-16     1215235
3                   3366                      OpenX RTB 2014-02-16      104419
4                   3606                   AppNexus RTB 2014-02-16      170757
5                   3947                   Pubmatic RTB 2014-02-16       68690
6                   4299            Improve Digital RTB 2014-02-16         701

我正在考虑使用类似于以下脚本的脚本:

# create a vector which stores the NetworkTrackingPixelIds
tp <- data %.%
        group_by(NetworkTrackingPixelId) %.%
        select(NetworkTrackingPixelId)

# create a for loop to print the line graphs
for (i in tp) {
      print(ggplot(data[which(data$NetworkTrackingPixelId == i), ], aes(x = Date, y = Impressions)) + geom_point() + geom_line())
    }

我预计此命令会生成许多图表,每个 NetworkTrackingPixelId 一个图表。相反,结果是一个聚合所有 NetworkTrackingPixelId 的独特图表。

我注意到的另一件事是变量tp不是实向量。

> is.vector(tp)
[1] FALSE

就算我强行..

tp <- as.vector(data %.%
        group_by(NetworkTrackingPixelId) %.%
        select(NetworkTrackingPixelId))
> is.vector(tp)
[1] FALSE
> str(tp)
Classes ‘grouped_df’, ‘tbl_df’, ‘tbl’ and 'data.frame': 1397 obs. of  1 variable:
 $ NetworkTrackingPixelId: int  2421 2615 3366 3606 3947 4299 4429 4786 6046 6286 ...
 - attr(*, "vars")=List of 1
  ..$ : symbol NetworkTrackingPixelId
 - attr(*, "drop")= logi TRUE
 - attr(*, "indices")=List of 63
  ..$ : int  24 69 116 162 205 253 302 351 402 454 ...
  ..$ : int  1 48 94 140 184 232 281 330 380 432 ...

[I've cut a bit this output]

 - attr(*, "group_sizes")= int  29 29 2 16 29 1 29 29 29 29 ...
 - attr(*, "biggest_group_size")= int 29
 - attr(*, "labels")='data.frame':  63 obs. of  1 variable:
  ..$ NetworkTrackingPixelId: int  8799 2615 8854 8869 4786 7007 3947 9109 9126 9137 ...
  ..- attr(*, "vars")=List of 1
  .. ..$ : symbol NetworkTrackingPixelId

由于我没有你的数据集,我将使用mtcars数据集来说明如何使用dplyr and data.table。这两个包都是最好的例子split-apply-combinerstats 中的范式。让我解释:

步骤 1 按档位拆分数据

  • dplyr使用该函数group_by
  • data.table使用参数by

第 2 步:应用函数

  • dplyr uses do您可以向其传递一个使用块 x 的函数。
  • data.table在每个部分的上下文中将变量解释为函数。

第 3 步:合并

这里没有组合步骤,因为我们将创建的图表保存到文件中。

library(dplyr)
mtcars %.%
  group_by(gear) %.%
  do(function(x){ggsave(
    filename = sprintf("gear_%s.pdf", unique(x$gear)), qplot(wt, mpg, data = x)
  )})

library(data.table)
mtcars_dt = data.table(mtcars)
mtcars_dt[,ggsave(
  filename = sprintf("gear_%s.pdf", unique(gear)), qplot(wt, mpg)),
  by = gear
]

UPDATE:要将所有文件保存到一个 pdf 中,这里有一个快速解决方案。

plots = mtcars %.%
  group_by(gear) %.%
  do(function(x) {
    qplot(wt, mpg, data = x)
  })

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

在ggplot2中使用for循环排列多个图表 的相关文章

  • ggplot2可以在一个图例中分别控制点大小和线大小(线宽)吗?

    一个使用的例子ggplot2绘制数据点组和连接每组均值的线 并使用相同的映射aes for shape并为linetype p lt ggplot mtcars aes gear mpg shape factor cyl linetype
  • 批处理文件 FOR /f 标记

    任何人都可以逐行准确解释以下代码是如何工作的 我真的迷路了 我一直在尝试学习如何使用 FOR 命令 但我不明白这一点 echo off for f tokens delims f in myfile do set line f call p
  • 计算例如具有多列 data.frames 的列表中的平均值

    我有几个 data frames 的列表 每个 data frame 有几列 通过使用mean mylist first dataframe a我可以得到这个 data frame 中 a 的平均值 但是我不知道如何计算列表中存储的所有 d
  • 互补DNA序列

    我在编写这个循环时遇到问题 它似乎在第二个序列之后停止了 我想返回给定 DNA 序列的互补 DNA 序列 例如 AGATTC gt TCTAAG 其中 A T 和 C G def get complementary sequence dna
  • 将年月格式转换为 POSIXct [重复]

    这个问题在这里已经有答案了 我有一些年月形式的数据 我想将其格式化以用于绘图ggplot date lt c 2016 03 2016 04 2016 05 2016 06 2016 07 2016 08 2016 09 2016 10 2
  • 如何在 ggplot 中保持配色方案,同时删除每个图中未使用的级别?

    我想比较一个图中的数据的一些子组和另一图中的一些其他子组 如果我绘制一个图 其中绘制了所有子组 那么这个数字将是巨大的 并且每个单独的比较都会变得困难 我认为如果给定的子组在所有图中都具有相同的颜色 这对读者来说会更有意义 这是我尝试过的两
  • 如何从 R 运行带有特定模块的 perl 脚本?

    我可以从终端运行 perl 脚本 myperlscript pl 没有任何问题 但是 如果我尝试从 RStudio 中运行相同的 perl 脚本 则会出现以下错误 command lt myperlscript pl outputfile
  • 如何在 Python 中使用 .format() 打印“for”循环中的列表?

    我是 Python 新手 我正在编写一段非常简单的代码 使用 for 循环打印列表的内容 format 我想要如下的输出 但我收到此错误 names David Peter Michael John Bob for i in names p
  • 计算每个唯一值出现的次数

    假设我有 v rep c 1 2 2 2 25 现在 我想计算每个唯一值出现的次数 unique v 返回唯一值是什么 但不返回它们的数量 gt unique v 1 1 2 我想要一些能给我的东西 length v v 1 1 25 le
  • 如何从 Fortran 调用 R 函数?

    根据http gallery rcpp org articles r function from c http gallery rcpp org articles r function from c Rcpp 允许用户从 C 调用 R 函数
  • 如何删除箱线图上的刻度线

    我试图从箱线图中删除 x 轴刻度线 但保留与刻度线关联的标签 这在基础 R 中可能吗 colors lt c lightskyblue3 gray78 gold1 wheat1 boxplot avgscore module data mi
  • 我无法下载 R 中的 reshape2 包 [关闭]

    Closed 这个问题是无法重现或由拼写错误引起 help closed questions 目前不接受答案 我在尝试安装 R 包时收到此响应 gt installed packages reshape2 Package LibPath V
  • 正则表达式字符串中第一个和最后一个非点的位置

    我希望找到字符串的第一个和最后一个非点元素的位置 理想情况下我想这样做regex在基地R 我已经写过R解决问题的代码 不过 我对一个感兴趣regex解决方案 感谢您的任何建议 这是一个示例数据集和R代码以获得所需的结果 此代码拆分字符串并使
  • R - Plm 和 lm - 固定效应

    我有一个平衡面板数据集 df 本质上由三个变量组成 A B and Y 对于一堆独特识别的区域来说 它会随着时间的推移而变化 我想运行一个回归 其中包括区域 下面等式中的区域 和时间 年份 固定效应 如果我没记错的话 我可以通过不同的方式来
  • 多功能测试仪替代 system.time

    我已经看到 我认为是这样 使用了类似于 system time 的函数 它可以同时评估多个函数的时间并输出一个输出 我不记得它是什么 并且用我正在使用的术语进行互联网搜索并没有得到我想要的响应 有人知道我正在谈论的功能的名称 位置吗 你想要
  • C for 循环索引:新 CPU 中的前向索引更快吗?

    在我订阅的邮件列表上 两位知识渊博的 IMO 程序员正在讨论一些优化的代码 并说了以下内容 在 5 8 年前发布的 CPU 上 向后迭代 for 循环稍微快一些 e g for int i x 1 i gt 0 i 因为比较i归零比将其与其
  • R独特的列或行与NA无可比拟

    有谁知道如果incomparables的论证unique or duplicated 曾经被实施过incomparables FALSE 也许我不明白它应该如何工作 无论如何 我正在寻找一个巧妙的解决方案 以仅保留与另一列相同的唯一列 或行
  • 更改闪亮 R 中的默认浏览器

    我在 RStudio 中使用 01 hello 虽然在 IE 中默认打开程序时它不会显示直方图 但即使在 Chrome 中 滑块也不起作用 我无法滑动条形图并看到直方图中的变化 如何更改 R 中的默认浏览器 以便闪亮启动 Chrome 而不
  • 文本挖掘 pdf 文件/词频问题

    我正在尝试挖掘一篇具有丰富 pdf 编码和图表的文章的 pdf 我注意到 当我挖掘一些 pdf 文档时 我得到的高频词是 phi taeoe toe sigma gamma 等 它与某些 pdf 文档配合良好 但与其他文档配合使用时却得到这
  • 旋转 Markdown 的表格 pdf 输出

    我想将 pdf 上的表格输出旋转 90 度 我正在使用 Markdown 生成报告并kable循环显示表格 如果可以的话我想继续使用kable因为还有很多其他依赖于它的东西我没有包含在这个 MWE 中 这是一个简单的例子 使用iris数据集

随机推荐

  • 如何使用 dart/flutter 中的共享首选项保存和获取列表列表

    我一直在尝试使用 dart 中的共享首选项保存列表列表 例如 我有一个列表List data dave 21 M steven 22 F 我试图按原样保存和加载 但应用程序不断抛出异常Unhandled Exception type Lis
  • Kotlin - 使用 Array 或 DoubleArray

    这两者的主要区别是什么 val array Array
  • SSRS - OutOfMemoryException - 可以显示的行数是否有限制

    我创建了一个 rdl 文档 它指向一个返回 90 000 行的过程 但我遇到了内存不足的异常 报表项目可以处理的行数是否有限制 目前 我已经更改了驱动我的报告的过程 只选择前 90 000 行 我的规格是能够创建包含 120 000 行的报
  • 在Python底图中绘制曲线

    我想在底图地图上绘制曲线 弧线 我可以使用 map plot x y 绘制一条直线 但如何使其弯曲 有箭头 在 matplotlib 中 可以使用 annotate 来完成此操作 但 Basemap 没有此方法 有任何想法吗 这是一个非常古
  • 如何根据模型 JavaScript 数组属性正确显示 Backbone marionette 集合视图?

    UPDATE 请参阅下面最后一个代码块中的最终答案代码 Marionette 的 CollectionView 需要一个有效的 Backbone Collection 而不是一个简单的数组 将数组传递给视图时 您需要从数组创建一个 Back
  • Grails geb 从命令行获取参数

    我正在 grails 中使用 geb 编写 ui 测试 我想使用 Maven 从命令行开始测试 这很好用 我的命令 mvn Dtest CheckMenuLinks 测试 现在我想从命令行传递一些参数进行测试 这可能吗 我找到了解决方案 我
  • VS2008可以调试COM dll吗?

    这可能是一个非常愚蠢的问题 是否可以在 VS2008 中调试我没有源代码的 COM dll 我想要这样做的原因是我将一个数组传递给 COM 方法 并且我希望该数组由该方法填充 然而 该数组并未被填充 所以我想进入 COM 方法看看发生了什么
  • async/await 函数的返回值

    我对这个 async await 的工作原理有点困惑 我有一些像这样的功能 async getDataFromDB let response await fetch let data await response json return d
  • 在每个环境的 Symfony 中禁用 swiftmailer 假脱机

    我无法通过控制台命令使用 symfony2 发送批量电子邮件 我想禁用控制台正在运行的环境的邮件假脱机完成 但保持它在默认环境中工作 所以我在 config yml 中有这个 swiftmailer transport mailer tra
  • ModuleNotFoundError:安装频道后没有名为“win32api”的模块

    我正在使用 WebSockets 和 django 通道构建一个聊天应用程序 我运行 pip installchannels 它安装成功 然后我安装 asgi redis 这也被安装了 现在 当我尝试导入channels asgi时 它给了
  • Ruby 上的 difflib [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 有没有类似Python的库difflib http docs python org library difflib html关于鲁比 特别
  • FBSDKSharing回调不返回结果

    在我的 iOS 应用程序中 我有一个 Facebook 共享按钮 它会打开一个 FBSDKShareDialog IBAction post id sender FBSDKShareLinkContent content FBSDKShar
  • 是否已准备好并推荐在 Xcode 4.2 生产中使用故事板? (参见以前的 XIB 方法)

    是否已准备好并推荐在 Xcode 4 2 生产中使用故事板 也就是说 使用过 Storyboard 的 iPhone iPad 开发人员会建议 对于本机 iPhone iPad 应用程序 一定要使用 Storyboard 吗 或者这个概念仍
  • 覆盖内置函数[重复]

    这个问题在这里已经有答案了 我有一大块使用 print 语句的代码 可以这么说 print foo and not print foo 我想改变输出 我可以在不更改所有打印行的情况下执行此操作吗 例如通过覆盖函数 语句 Python dir
  • .nil? 和 .blank? 之间的区别和.空? [复制]

    这个问题在这里已经有答案了 可能的重复 Ruby on Rails 中 nil v empty v blank 的简明解释 https stackoverflow com questions 885414 a concise explana
  • OpenCV 中 Android Yuv420sp 转 ARGB

    我正在尝试将预览回调中的原始图像从手机发送到 PC 然后电脑将处理该图像 我使用 OpenCV 库来进行图像处理 目前我只是在 PreviewCallback 中编写一个函数来将字节数组保存到文件中 并将文件复制到电脑 我编写了一个简单的程
  • WordPress 3.0 自定义帖子类型与上传

    有没有一种方法可以在自定义帖子类型编辑页面上插入一个 或多个 上传字段 我不想使用包含所有字段和内容的媒体库 这是一个相当基本的示例 但它应该可以帮助您上路 function my upload field echo
  • 如何将 Tensorflow 数据集转换为 2D numpy 数组

    我有一个 TensorFlow 数据集 其中包含近 15000 个分辨率为 168 84 的彩色图像 每个图像都有一个标签 它的类型和形状是这样的 lt ConcatenateDataset shapes 168 84 3 types tf
  • RxSwift:onDispose 在 Alamofire 返回数据之前激活

    我正在尝试使用 rxSwift 和 Alamofire 从 REST swift 2 3 获取 JSON 数据 这是我的代码 func getArticles articlesReq ArticlesReq gt Observable lt
  • 在ggplot2中使用for循环排列多个图表

    我想生成一个 pdf 文件 其中显示多个图表 每个图表一个NetworkTrackingPixelId 我有一个与此类似的数据框 gt head data NetworkTrackingPixelId Name Date Impressio