将参数传递给函数以使用 ggplot stat_function 进行绘图

2024-03-25

我有一个函数和一个参数列表。

F <- function(a,b,...) {a^b+b/a}
L <- list("a" = 5, "b" = 2, "c" = 0)

我想用未知的 x (或“x”)替换参数之一(“a”、“b”或“c”)并使用 ggplot 的 stat_function 进行绘图。

这些计算是闪亮应用程序的一部分,用户将 1) 从下拉列表中选择一个参数,例如“a”,作为未知数,2) 使用滑块选择其他参数的值。 L 中的数字 5、2、0 是默认参数值,在用户交互之前使用。有几个这样的函数。这里参数列表 L 有一个在 F 中未使用的元素。

我已经被这个问题困扰太久了,以至于我已经无法正常思考了。在我尝试过的许多事情中,以下是其中之一:

# select a parameter to vary:
Y <- "a"
f1 <- function(f = F, l = L, y = Y, x, ...){
  l[y] <- x # replace "a" with x
  do.call(f, l, ...)
}

# make a stat_function ggplot:
library("ggplot2")
df <- data.frame(x = c(0,10))
p <- ggplot(df, aes(x))
p <- p + stat_function(fun = f1)
print(p)

这将返回以下错误:

Error in (function (f = F, l = L, y = Y, x, ...)  : 
  argument "x" is missing, with no default
Error in as.environment(where) : 'where' is missing

我尝试了几种变体,包括:设置 l[y]


如果我理解,拥有一个多参数函数,您想要引入一个部分函数,​​在该函数中您可以改变一个参数并修复其他参数。例如尝试这个:

F <- function(a,b,...) {a^b+b/a}
L <- list("a" = 5, "b" = 2, "c" = 0)

f.partial <- function( var = "a",params=L){
  params[[var]]=as.name("x")
  function(x)do.call(F,params)
}

我们可以测试一下,例如:

## vary a
f.partial("a")(1)
[1] 3
> F(1,b=L$b)
[1] 3
## vary b 
> f.partial("b")(1)
[1] 5.2
> F(1,a=L$a)
[1] 5.2

测试用ggplot2:

library("ggplot2")
df <- data.frame(x = seq(0,1,0.1))
ggplot(df, aes(x)) +
  stat_function(fun = f.partial("a"),col='blue') +
  stat_function(fun = f.partial("b"),col='red')
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将参数传递给函数以使用 ggplot stat_function 进行绘图 的相关文章

  • 根据是否满足条件对绘图区域进行着色

    我正在使用创建线图ggplot and geom line 随着时间的推移而发展的价值观走廊 有时可能会发生上限低于下限 我将其称为 反转 并且我想突出显示在我的图中发生这种情况的区域 例如使用不同的背景颜色 搜索 Google 和 Sta
  • 在 R 中导入 png 文件并转换为动画(.mp4)

    我正在尝试用 R 中的几个 png 文件创建一个简短的动画 我尝试了 packagemagick但只有当我将它们保存为 gif 时它才有效 当我尝试另存为 mp4 时 它将生成一个 mp4 文件 但一旦打开它 只会显示第一张图像 我的代码是
  • R 分号将列分隔为行

    我正在使用 RStudio 2 15 0 并使用 XLConnect 从 Excel 创建了一个包含 3000 多行和 12 列的对象 我试图将一列分隔 拆分为行 但不知道这是否可能或如何执行 下面的数据示例使用 3 列连接 对此的任何帮助
  • 使用不同时区的 POSIXct 到数字

    我想我一定不明白 POSIXct 是如何工作的 或者什么的 据我了解 它是自纪元以来的秒数 纪元是标准时间 例如 1970 01 01 GMT 我取两个 POSIXct 时间 一个在 EST 一个在 PST 它们是相同的绝对时间 然而 当我
  • R语言赋值

    我想知道 R 语言中的赋值是如何工作的 考虑以下 R shell 会话 gt x lt c 5 6 7 gt x 1 lt 10 gt x 1 10 6 7 gt 我完全理解 创建向量 5 6 7 并将其绑定到 符号 x 之后 x 会反弹到
  • 使用具有唯一订单号但重复订单组合的 arules 包的 R 篮子分析

    使用具有唯一订单号但重复订单组合的 arules 包进行 R 篮子分析 刚刚学习 R 我正在尝试使用 arules 包进行购物篮分析 但我完全接受任何其他包建议 来比较所购买的 6 种不同商品类型的所有可能组合 我的原始数据集如下所示 Or
  • R 神经网络在时间序列的最大步长内不收敛

    我正在编写一个神经网络来预测时间序列中的元素x sin x 2 在 R 中 使用neuralnet包裹 这就是训练数据的生成方式 假设窗口有 4 个元素 最后一个元素是必须预测的元素 nntr0 lt 1 25 sin 1 25 2 nnt
  • 提升 ggplot2 性能

    The ggplot2软件包无疑是我使用过的最好的绘图系统 只是对于较大的数据集 约 50k 点 来说性能并不是很好 我正在考虑通过 Shiny 提供网络分析 使用ggplot2作为绘图后端 但我对其性能并不满意 尤其是与基础图形相比 我的
  • R - 小鼠 - 添加一列,对具有估算值的列进行求和

    我有一个缺少数据的数据库 我需要估算数据 我使用的是小鼠 然后根据原始列创建新列 使用估算数据 我需要用这些新列进行统计分析 具体来说 我的参与者使用 7 点李克特量表填写了几份调查问卷 有些人没有回答所有问题 然后我需要估算值 1 对列中
  • R: eval(parse()) 错误消息:即使在解析中指定了“text=”也无法打开文件

    我多次对国家 地区列表进行分析 在每次迭代期间 结果应添加到向量中 下面我展示了一个简化的示例 仅针对一个国家 地区 没有循环 尽管我彻底寻找解决方案 但我找不到答案 this is my simplified country vector
  • 如何使用ggplot2在地图上添加经度和纬度线?

    我现在正在使用绘制加拿大地图ggplot2 因为默认的投影方式是 aea 阿尔伯斯等积 所以地图上的经度和纬度都是直线 我想知道如何在地图上以 110W 100W 90W 和 50N 60N 70N 的形式显示经度和纬度 它们应该是曲线 多
  • R Plotly 为条形图设置自定义颜色

    我有一个plotly我的 Shiny 应用程序中的条形图 我想在生成的条形图中设置每列的特定颜色 Here s some reproducible data df data frame Month c Jan Feb Mar Apr May
  • R Doplot() 坐标定位器()

    我绘制了 2 个 fasta 序列的点图 使用 seqinr 包中的 dotPlot 我需要从图中提取一些值 x y Dotplot 输出是图像 通用点图可能就是这个 例如 我需要局部对齐的开始和结束值 由紫色线表示所以这里有一个例子 l
  • 如何在 R 中对多维面板数据运行回归

    我需要对面板数据进行回归 它有 3 个维度 年份 公司 国家 地区 例如 year comp count value x value y 2000 A USA 1029 0 239481 2000 A CAN 2341 4 129333 2
  • H2O R 中的子集化

    我有一个 h2o 对象 子集的标准 R sub1 lt trans trans Type 1 我在水中也尝试过同样的方法 它不工作 sub1 lt trans trans Type 1 我也尝试过 sub1 lt h2o exec tran
  • 对shinyTable进行子集化

    我目前正在玩shinyTable这是一个shinyHandsonTable 的兼容实现 https github com trestletech shinyTable https github com trestletech shinyTa
  • 如何将多个 .txt 文件读入 R? [复制]

    这个问题在这里已经有答案了 我正在使用 R 来可视化一些数据 所有这些数据都是 txt 格式 一个目录中有几百个文件 我想一次性将其全部加载到一个表中 有什么帮助吗 EDIT 列出文件不是问题 但我在从列表到内容的过程中遇到了困难 我已经尝
  • 使用 ggplot2 表示散点图中每个点的小饼图

    我想创建一个散点图 其中每个点都是一个小饼图 例如考虑以下数据 foo lt data frame X runif 30 Y runif 30 A runif 30 B runif 30 C runif 30 下面的代码将绘制一个散点图 代
  • 如何使非常宽的 grid.table 或 tableGrob 适合 pdf 页面?

    我有一个相当宽的表格 页面宽度的 4 3 我正在尝试使用 grid table 或 grid arrange 通过 tableGrob 将其打印到 pdf 文件中 该表超出了页面边界并被剪裁 有没有办法强制 grid table grid
  • 如何在 R 中按组对列进行排序

    我有一个 data frame 比如 df 如下所示 Hospital Name State Mortality Rate hospital 1 AA 0 2 hospital 2 AA 0 3 hospital 3 BB 0 3 hosp

随机推荐

  • 在 zendframework2 中验证日期

    嗨 我想验证 zf2 中的日期字段 形式 我设置 格式 选项来获取我需要的格式 但每次我验证它时都会出现错误 验证器看起来像这样 inputFilter gt add factory gt createInput array name gt
  • Inno Setup - 更新时删除旧的/过时的文件

    所以 我意识到这个问题以前已经被问过 事实上 在写这篇文章之前 我读了其中的 10 篇文章 但没有一个有适用的解决方案 我希望现在有人已经找到了一些东西 问题 我的程序是使用脚本构建的 在单个文件夹中创建所有最终文件 这些文件包含在 inn
  • 使用 VBA 访问 Outlook 中的文件夹

    我正在使用以下命令将邮件移动到 Outlook 中的文件夹 Dim chemin as String chemin Split path Set myNameSpace Application GetNamespace MAPI Set m
  • 将 Image 数据类型转换为 Base64 并将 Base64 转换为 Image 数据类型

    我在 MS SQL 2012 中使用数据类型 Image 来存储图像 问题 我在 C 中的 BASE64 字符串中有一个图像 9j 4AAQSkZJRgABAQEASABIAAD 4SKhRXhpZgAATU0AKgAAAAgABwESAA
  • 有没有办法让一个对象在 Windows UA 中占据多个网格?

    我正在尝试制作我的第一个应用程序 但我在网格方面遇到了一些问题 我试图将屏幕的左侧设为地图 将右侧设为 2 个框 网格 我不确定是否有办法在多个网格中拥有一个对象 或者如何设置这样的布局 基本上是一个 左线消失了 到目前为止 这是我获得的布
  • 如何创建弹跳div动画

    我正在尝试重新创建弹跳箭头动画 如下所示 http www codecomputerlove com http www codecomputerlove com 但进展并不顺利 我尝试使用 Layerslider 中的内置动画最接近的内容可
  • 带有 标签的 SVG 不可见

    我对 SVG 还比较陌生 我一直在探索各种在线呈现它们的方法 每个似乎都有自己的优点和缺点 但
  • 将文本添加到行尾而不加载文件

    我需要将信息以许多字典的形式存储到一个非常大的文件中 这并不重要 只是说我试图首先将所有数据放入这些字典中 但我耗尽了内存 60Gb 很好 所以我想通过在行上执行循环并向每行附加一些文本来将数据添加到文件中 而不实际将其加载到内存中 那可能
  • Async/Await 是否使用 Task.Run 异步启动新线程?

    我读了很多文章 但仍然无法理解这部分 考虑这段代码 private async void button1 Click object sender EventArgs e await Dosomething private async Tas
  • Matlab中imagesc()的非均匀轴

    问题 是否可以在非均匀轴上说明图像 Details 我需要用图像来说明多维时间序列 但这个时间序列的时间网格非常不均匀 这是一个例子 m 10 n 3 t sort rand m 1 non uniform time values rand
  • :before/:after 伪元素的内容垂直居中

    我正在尝试实现类似于这张图片的效果 我有一个图像 作为幻灯片的一部分 包裹在 div 中 并使用 before 和 after 伪元素 我显示两个控件以移动到幻灯片的下一个 gt gt 或上一个 到目前为止 我有这个 div positio
  • 如何检查 emacs 是在框架中还是在终端中?

    基于这个问题 如何将emacsclient背景设置为Emacs背景 https stackoverflow com questions 9271930 how to set emacsclient background as emacs b
  • PHP内存限制

    在 PHP 5 0 4 中 如果您don t配置 enable memory limit 时 将忽略 memory limit 指令 在推荐的 php ini 文件中它被设置为 8M 但文档说它被忽略 那么在这种情况下 是否存在每个脚本的内
  • 使用客户端指纹对 JWT 令牌进行编码?

    我想知道是否会是最佳实践使用客户端指纹作为 JWT 秘密进行编码 然而 我在 WWW 上找不到有关这个问题的任何内容 但到目前为止 我这样做是有意义的 我正在考虑使用 JavaScript 生成指纹客户端 并在每次调用时将其发送到 API
  • 如何添加tailwindcss到vite?

    我在用着vite https github com vuejs vite 0 16 6并想将 vuepress 站点迁移到使用 vite 但是我不确定如何配置 vite 以使用 tailwindcss in my index css tai
  • 如何让3个textView控件大小相同

    在我的活动中我定义了 3 个 textView 控件 所有这些 textView 都一个挨着一个出现 我需要做一些事情 使它们始终具有相同的大小 假设第一个 textView 控件是小时 第二个 textView 控件是分钟 第三个 tex
  • 多个 Asp.Net 项目之间的共享代码 [重复]

    这个问题在这里已经有答案了 在同一服务器上的多个 Web 应用程序之间共享 bin 文件夹和 dll 以及其他资源文件 如 css 的最佳实践是什么 我已经将通用代码分离到它们自己的程序集中 但我想知道部署等 我基本上希望将所有通用文件位于
  • Meteor 需要时间才能知道是否存在 {{currentUser}}

    我有一些代码 我只想在存在时运行noUser和一些当有currentUser 所有这些都在导航模板内 就像这样 if currentUser li class nav a href Post a li li class nav a Ola
  • 如何在 Chrome 扩展程序中录制音频?

    设置 Chrome 扩展程序以从麦克风录制音频的最简单方法是什么 我看到有一个工作实验性语音输入API http code google com chrome extensions trunk experimental speechInpu
  • 将参数传递给函数以使用 ggplot stat_function 进行绘图

    我有一个函数和一个参数列表 F lt function a b a b b a L lt list a 5 b 2 c 0 我想用未知的 x 或 x 替换参数之一 a b 或 c 并使用 ggplot 的 stat function 进行绘