ggplot2,如何在函数内使用访问数据框元素?

2024-01-09

我正在尝试使用 ggplot2 创建绘图来标准化许多类似绘图的创建。假设您可以使用 theme()、stat_*() 或 geom_*() 以及 + 运算符来堆叠大量选项,那么如何将其包装在函数中呢?

我想创建一个函数来绘制数据框的各个部分,例如:

library(ggplot2)
test<-function(fdata,fx){
  p<-ggplot(fdata,aes(x=fx,y=mpg))+geom_point()
  print(p)}; 
test(mtcars,wt)

返回错误:

Error in eval(expr, envir, enclos) : object 'fx' not found

但是将美学定义更改为局部范围变量(例如 x=fx 到 x=wt)是可行的,但不会使用函数的第二个选项“fx”:

library(ggplot2)
test<-function(fdata,fx){
  p<-ggplot(fdata,aes(x=wt,y=mpg))+geom_point()
  print(p)}; 
test(mtcars,wt)

如何编写一个函数来根据数据框中的不同变量创建绘图?

例如。我如何编写函数测试,以便我可以多次调用以获得类似的图,例如:

test(mtcars,'wt')  #scatter plot of wt x mpg
test(mtcars,'disp') #scatter plot of disp x mpg
test(mtcars,'hp')  #scatter plot of hp x mpg

这里的技巧是使用aes_string而不是使用aes。前者允许您传递字符串作为美观。这允许您传递包含美学字符串的变量,例如'wt' 在绘制 mtcars 的情况下。您需要像这样修改您的代码:

library(ggplot2)
test <- function(fdata, fx) {
  p <- ggplot(fdata, aes_string(x = fx, y = "mpg")) + geom_point()
  print(p)
}
test(mtcars, "wt")
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ggplot2,如何在函数内使用访问数据框元素? 的相关文章

  • 如果“testthat”测试在“R”中失败,则打印自定义诊断信息

    I use a testthat单元测试来检查是否data frame函数返回的结果与我期望它返回的结果相同 如果测试失败 testthat打印一些诊断信息 例如 MyFunction df orig is not identical to
  • 如何生成向量的所有组合[重复]

    这个问题在这里已经有答案了 假设我有 3 个绿球 2 个橙球和 8 个黄球 我想订购它们 鉴于所有相同颜色的球都是相同的 如何生成所有可能的序列 在 R 中 使用gregmisc 我可以 balls lt c orange orange g
  • 使用 ggplot2 修改点子集的形状

    我正在尝试绘制一个沿大量维度变化的大型散点图 这是我的起始情节 p lt ggplot mtcars aes wt mpg shape cyl colour gear size carb geom point 使用mtcars数据集 我只是
  • 分离并重新附加“tools:rstudio”

    又名玩火 以下不起作用 rstd obj lt as environment tools rstudio detach tools rstudio attach rstd obj name tools rstudio 好吧 它似乎有效 但随
  • 如何让R使用所有处理器?

    我有一台运行 Windows XP 的四核笔记本电脑 但查看任务管理器 R 似乎一次只使用一个处理器 如何让 R 使用全部四个处理器并加速我的 R 程序 我有一个基本系统 我使用它在 for 循环上并行化我的程序 一旦您了解需要做什么 此方
  • 如何使用 R 中带引号的字符值内的序列读取 CSV?

    这是一个包含两个字符列的 CSV 文件 key value a 所有字符值都用双引号引起来 并且有一个顺序 在值之一内 转义引号加分隔符 我无法通过 read csv readr 中的 read csv 或 data table 中的 fr
  • 将列表中的列转换为 R 中的数据框

    我有使用 R 创建的以下列表 set seed 326581 X1 rnorm 10 0 1 Y1 rnorm 10 0 2 data data frame X1 Y1 lst lt replicate 100 df smpl lt dat
  • ggplot 中的错误问题:“grid.Call(”L_textBounds“, as.graphicsAnnot(x$label), x$x, x$y, … 中的错误”[重复]

    这个问题在这里已经有答案了 我试图在 ggplot 中制作一个条形图 其中我通过强制其中一些标签为长度为零的字符串 即 来指定要显示的标签 但是 我收到错误 Error in grid Call L textBounds as graphi
  • 查找数据帧列表中同一列中的所有重复值并将其转换为 NULL

    我有一个清单BELGIAN COAST list包含数百个数据帧 df1 df2 15 列 X 1000 行 每个数据帧的最后一列称为Chemicals并包含一些字符 例如Sulfate or Ammonia 但是这一列有很多行Chemic
  • 如何获得属于五分位数的x?

    我正在大学学习使用 R 进行计量经济学项目 所以请原谅我的笨拙 基本上 使用并给出 一个矩阵 股票价格 行 天 列 公司股票价格 另一个矩阵 市值 行 天 列 公司市值 我必须收集第三个矩阵每天观察的属于市值分布第一五分位数的股票价格 然后
  • 从 R 环境中删除对象

    我正在阅读 Hadley 的 Advanced R 在第 8 章中 他说我们可以使用以下方法从环境中删除对象 rm 但是 移除该物体后我仍然可以看到该物体 这是我的代码 e lt new env e a lt 1 e b lt 2 e a
  • R.matlab/readMat:readTag(this) 中出错

    我正在尝试使用 R matlab 将 matlab 文件读入 R 但遇到此错误 require R matlab r lt readMat file mat verbose T Trying to read MAT v5 file stre
  • 根据另一列中的键累积一列中的值时出现问题

    我有一个看起来像这样的数据框 我需要使用 PROJ ID 列中的字符串创建一个新的值列 并形成 PROJ NAME 列中的值字符串 这里提供的解决方案 根据 r 中另一列的键累积一列中的值 https stackoverflow com q
  • 如何按 data.table 中的十分位数组计算统计数据

    我有一个 data table 想按组计算统计数据 R set seed 1 R DT data table a rnorm 100 b rnorm 100 这些组应该定义为 R quantile DT a probs seq 1 9 1
  • 为什么这些数字不相等?

    下面的代码显然是错误的 有什么问题 i lt 0 1 i lt i 0 05 i 1 0 15 if i 0 15 cat i equals 0 15 else cat i does not equal 0 15 i does not eq
  • R 中的字符串作为函数参数

    数据框chocolates列出了糖果的类型以及每种糖果的一组评级 ID sweetness filling crash snickers 0 67 0 55 0 40 milky way 0 81 0 53 0 56 我正在编写一个函数 它
  • 使用outer代替expand.grid

    我正在寻找尽可能快的速度并留在基地做该做的事expand grid做 我用过outer为过去类似的目的创建一个向量 像这样的东西 v lt outer letters LETTERS paste0 unlist v lower tri v
  • 带 R 的多彩标题

    我想添加颜色某些词在我的图表标题中 我已经能够在这里找到一些先例 http blog revolutionanalytics com 2009 01 multicolor text in r html 具体来说 我希望用撇号括起来的文本 在
  • R:将 JSON 时间格式转换为 POSIX

    我有一个 JSON 字符串 并将其放入数据框中 我能够做到这一点 但我在使用 apply 函数之一将所有时间字符串转换为 POSIX 格式时遇到问题 See here https stackoverflow com questions 90
  • 在 R 中使用 Huggingface Transformer 模型

    我正在尝试在 R 中使用不同的 Huggingface 模型 这是通过 reticulate 导入 Transformer 包来实现的 谢谢 https rpubs com eR ic transfoRmers https rpubs co

随机推荐

  • 使用 JavaScript 更改 SVG 对象的高度和宽度

    我想在单击按钮时更改 svg 对象的高度和宽度 我尝试过但它不起作用 function modify document getElementById circle1 style height 10px document getElement
  • 展开宏中的宏

    给定以下宏 以函数调用方式访问编译器属性 例如spec section mysection void foo void define spec H spec H define spec section S attribute section
  • Java 中判断一个数是否为 Double

    我是 Java 新手 我试图弄清楚一个数字是否是 Double 如下所示 if typeof items elementAt 1 Double sum add i items elementAt 1 如果有人能告诉我如何重新排列语法以使其正
  • 使用正则表达式将字符串拆分为单词数组

    我正在尝试将字符串拆分为单词数组 但是我想在每个单词后面保留空格 这就是我正在尝试的 var re a z s gi var test test one two three four var results test match re 我期
  • 获取 Sitecore 中单个页面的个人资料关键分数

    我有关于 Sitecore Analytics 和用户个人资料密钥的问题 我需要能够获取单个页面的配置文件密钥的分数 例如 如果我有一个名为 traveler 的个人资料键 该键在给定页面上的值为 1 10 那么我需要能够获取内容作者分配的
  • messageBox.Show() 执行什么操作才能停止 UI 线程的执行?

    在 WPF 应用程序中 我将消息输出到文本框 并在这些消息之间调用一个设置仪器的函数 但是 这些消息都会同时出现 在函数调用结束时 我真的不知道如何清楚地解释我的问题 我会尽力 我有一个 WPF 应用程序 它使用串行端口从仪器获取数据 该应
  • 如何从祖父母标签继承CSS? [复制]

    这个问题在这里已经有答案了 我有一个两级嵌套的 div 我想应用包含类 c 的 div 其宽度与类 a 的 div 相同 如果它是父母 那么我想继承会完成这项工作 但这种情况下该怎么办呢 HTML 代码 div class a div cl
  • 如何将 Cassandra (>2.0) JVM 堆大小设置为 8GB?

    如何将 Cassandra gt 2 0 JVM 堆大小设置为 8GB 当我输入时free m它给了我以下内容 如何将 Cassandra JVM 堆大小设置为 8GB total used free shared buffers cach
  • 重命名 Pandas DataFrame 索引

    我有一个没有标题 带有日期时间索引的 csv 文件 我想重命名索引和列名 但使用 df rename 仅重命名列名 漏洞 我的版本是0 12 0 In 2 df pd read csv r D Data DataTimeSeries csv
  • 设置储值的 Svelte 用户注册问题

    helo 我正在尝试注册用户 成功后将 setContext 设置为新注册的用户 然后导航到主页 服务器正确响应并注册用户 但是当调用 setContext 时 我收到以下错误 index mjs 552 Uncaught 在承诺中 错误
  • EF 可以使用影子属性创建多列索引吗?

    我正在尝试使用影子属性创建多列唯一索引 我知道我只需添加一个属性就可以解决这个问题 但我想看看是否可以通过某种方式保持我的模型干净 要创建多列索引 您可以在 Fluent API 中使用以下选项 modelBuilder Entity
  • iOS/Swift:tableView cellForRowAtIndexPath 崩溃

    我在第 389 行遇到 EXC BREAKPOINT 崩溃 386 func tableView tableView UITableView cellForRowAtIndexPath indexPath NSIndexPath gt UI
  • Angular 4 Reactive Forms FormControl 错误为 null

    如果我通过 Tab 键浏览文本输入而不输入任何内容 则会显示错误消息 div 指示所需的验证器已正确触发 但是 如果我在其中一个字段中输入任何内容 控制台会立即抛出此错误 Cannot read property required of n
  • Tkinter Entry 小部件之后的事件回调

    从这里的第一个答案 堆栈溢出 6548837 https stackoverflow com questions 6548837 how do i get an event callback when a tkinter entry wid
  • 为什么按钮点击触发与setTimeout()触发不同?

    考虑以下几乎相同的两个片段 区别在于 第一个使用setTimeout 触发事件 第二个在单击按钮时触发事件 如果您检查控制台 您将看到代码段 1 中的最后两行是 App rendering 1 folder s Observed js 片段
  • 为什么 vector::clear 不从向量中删除元素?

    当我使用clear on a std vector 它应该摧毁里面的所有元素vector 但事实并非如此 示例代码 vector
  • 在公式中显示字符串,而不是在 lm fit 中显示为变量

    我无法解决当lm sformula 执行后 它不显示分配给的字符串sformula 我有一种感觉 这是 R 处理函数参数的通用方式 而不是特定于线性回归 下面通过例子来说明这个问题 示例 1 有不受欢迎的 output lm formula
  • 如何更改 Atom 键绑定

    我正在寻找更改 Atom 文本编辑器的键绑定 我熟悉Android Studio Atom 是否允许我们自定义按键绑定 您必须转到 编辑 gt 首选项 gt 按键绑定 在此选项卡中 您可以看到实际的绑定 如果您想更改它 您可以访问键盘映射文
  • Apache Nifi解压

    我是 Apache NIFI 的新手 正在尝试构建一个 POC 流程 我也需要你的指导 我有一个名为 sample gz 的压缩 gz 文件 其中包含一个名为 sample file 的文件 我需要解压缩sample gz 文件并将 sam
  • ggplot2,如何在函数内使用访问数据框元素?

    我正在尝试使用 ggplot2 创建绘图来标准化许多类似绘图的创建 假设您可以使用 theme stat 或 geom 以及 运算符来堆叠大量选项 那么如何将其包装在函数中呢 我想创建一个函数来绘制数据框的各个部分 例如 library g