R - 如何为一个图例元素组合 expression()、paste() 和 formatC() 命令?

2024-05-08

我正在努力创造一个美好的传奇。它应该包含希腊字母 mu,我可以使用表达式、一些文字(即“:”和“mm”)以及使用 formatC 格式化的模型系数来完成此操作。 我运行没有问题的是要么没有希腊字母,然后我可以使用简单的粘贴命令

leg.txt <- c("Number of Points:"
           ,formatC(length(dist),big.mark=" ")
           ,"Normal distribution"
           ,paste(mu,":",formatC(fit$estimate[1], digits = 3,format = "f"),"mm")
           ,paste(expression(sigma),":",formatC(fit$estimate[2], digits = 3,format = "f"),"mm")
           ,"Density plot"
           ,paste(expression(bar(x)),":",formatC(mean, digits = 3,format = "f"),"mm")
           ,paste("SD:",formatC(sd, digits = 3,format = "f"),"mm")
           )


legend("topleft",  leg.txt
     ,col= c("white","white","blue","white","white","red","white","white")
     ,bty = "n"
     ,lwd = c(2,2)  

)

这会导致类似的事情

(因信誉问题不能发图片)

微米:0.283毫米

但可以看出,没有包含希腊字母。切换到类似的东西

leg.txt <- c("Number of Points:"
           ,formatC(length(dist),big.mark=" ")
           ,"Normal distribution"
           ,eval(substitute(expression(paste(mu, ":" , c, "mm"),list(c=(formatC(fit$estimate[1], digits = 3,format = "f"))))))
           ,paste(expression(sigma),":",formatC(fit$estimate[2], digits = 3,format = "f"),"mm")
           ,"Density plot"
           ,paste(expression(bar(x)),":",formatC(mean, digits = 3,format = "f"),"mm")
           ,paste("SD:",formatC(sd, digits = 3,format = "f"),"mm")
           )digits = 3,format = "f"))))))

导致 坐标:坐标 (formatC($(拟合,估计)_1,3,f))

我有一个问题,经过 2 小时的研究,我无法使 mu 显示为希腊表达式,或者如果我这样做,则不会评估 formatC() ,它将像文字一样发布,而不是给出一个格式化的数字。

使用了其他帖子中的所有提示,例如 bquote 等,但无法使其运行。

编辑了一些“更可运行”的示例。 这是不运行的代码:

x <- seq(1,100,1)
y <- runif(100)
y2 <- x + y 

fit <- lm(y2~x)
plot(x,y2)
abline(fit, col = "red",lwd = 2)
mu2    <- formatC(fit$coefficients[1], digits = 3,format = "f")
sigma2 <- formatC(fit$coefficients[2], digits = 3,format = "f")
mean <- mean(y2)
sd <- sd(y2)
leg.txt <- c("Number of Points:"
             ,formatC(length(dist),big.mark=" ")
             ,"Normal distribution"
             ,bquote(mu ~ ":" ~ .(mu2) ~ "mm")
             ,bquote(sigma ~ ":" ~ .(sigma2) ~ "mm")
             ,"Density plot"
             ,paste(expression(bar(x)),":",formatC(mean, digits = 3,format = "f"),"mm")
             ,paste("SD:",formatC(sd, digits = 3,format = "f"),"mm")
)
legend("topleft",  leg.txt
       ,col= c("white","white","blue","white","white","red","white","white")
       ,bty = "n"
       ,lwd = c(2,2)  
)

当我第二次使用 bquote 时出现问题。

运行的是

x <- seq(1,100,1)
y <- runif(100)
y2 <- x + y 

fit <- lm(y2~x)
plot(x,y2)
abline(fit, col = "red",lwd = 2)
mu2    <- formatC(fit$coefficients[1], digits = 3,format = "f")
sigma2 <- formatC(fit$coefficients[2], digits = 3,format = "f")
mean <- mean(y2)
sd <- sd(y2)
leg.txt <- c("Number of Points:"
             ,formatC(length(dist),big.mark=" ")
             ,"Normal distribution"
             ,bquote(mu ~ ":" ~ .(mu2) ~ "mm")
             ,expression(paste(sigma,":",eval(formatC(fit$estimate[2], digits = 3,format = "f"))),"mm")
             ,"Density plot"
             ,paste(expression(bar(x)),":",formatC(mean, digits = 3,format = "f"),"mm")
             ,paste("SD:",formatC(sd, digits = 3,format = "f"),"mm")
)
legend("topleft",  leg.txt
       ,col= c("white","white","blue","white","white","red","white","white")
       ,bty = "n"
       ,lwd = c(2,2)  
)

我仍然认为 bquote 是正确的选择。在我的真实数据中,我正在拟合正态分布,但这应该不重要。

我使用 bquote 两次得到的错误是: 缺少参数图例,没有默认值(从德语错误消息翻译而来,但似乎是正确的。图例对象没有得到 txt,尽管它在我的工作区中。

现在最终有效的解决方案是:

x <- seq(1,100,1)
y <- runif(100)
y2 <- x + y 

fit <- lm(y2~x)
plot(x,y2)
abline(fit, col = "red",lwd = 2)
mu2    <- formatC(fit$coefficients[1], digits = 3,format = "f")
sigma2 <- formatC(fit$coefficients[2], digits = 3,format = "f")
mean <- mean(y2)
sd <- sd(y2)
leg.txt <- c("Number of Points:"
             ,formatC(length(dist),big.mark=" ")
             ,"Normal distribution"
             ,as.expression(bquote(mu ~ ":" ~ .(mu2) ~ "mm"))
             ,as.expression(bquote(sigma ~ ":" ~ .(sigma2) ~ "mm"))
)
legend("topleft",  leg.txt
       ,col= c("white","white","blue","white","white","red","white","white")
       ,bty = "n"
       ,lwd = c(2,2)  
)

You use substitute包括“数学”和数值变量,如 ?plotmath 中所示。但这里也有一些意想不到的事情;图例的元素向量无法正确组合,除非其中之一是expression,所以在这里我只是将你的纯文本行之一变成了一个表达式。

fit <- list(estimate=c(1.35456, 2.63454))
dist <- 1:10
mean <- 10.3456
sd <- 0.1566

leg.txt <- c(paste("Number of Points:",formatC(length(dist),big.mark=" "))
                   ,expression("Normal distribution")
                   ,substitute(paste(mu,": ",x," mm"), 
                        list(x=formatC(fit$estimate[1], digits = 3,format = "f")))
                   ,substitute(paste(sigma,": ",x," mm"), 
                        list(x=formatC(fit$estimate[2], digits = 3,format = "f")))
                   ,"Density plot"
                   ,substitute(paste(bar(x),": ",y," mm"), 
                        list(y=formatC(mean, digits = 3,format = "f")))
                   ,substitute(paste("SD: ",x," mm"), 
                        list(x=formatC(sd, digits = 3,format = "f")))
           )

plot(1:5,1:5)
legend("topleft",  legend=leg.txt
     ,col= c("white","blue","white","white","red","white","white")
     ,bty = "n"
     ,lwd = c(2,2)  
)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

R - 如何为一个图例元素组合 expression()、paste() 和 formatC() 命令? 的相关文章

  • R 将多个值与向量进行比较并返回向量[重复]

    这个问题在这里已经有答案了 我有一个向量 A 对于 A 的每个元素 我想检查它是否等于第二个向量 Targets 中的任何元素 我想要一个逻辑值向量 其长度为 A 作为返回 也提到了同样的问题here http r 789695 n4 na
  • randomForest 包在删除一个预测类时的奇怪行为

    我正在运行一个随机森林模型 它产生的结果从统计角度来看对我来说完全没有意义 因此我确信有些东西mustrandomForest 包的代码出现错误 至少在模型的本次迭代中 预测 左侧变量是具有 3 种可能结果的政党 ID 民主党 独立党 共和
  • 从 n,k 维矩阵数组中减去 n,k 维矩阵

    如果我有一个数组A A lt array 0 c 4 3 5 for i in 1 5 set seed i A i lt matrix rnorm 12 4 3 如果我有矩阵 B set seed 6 B lt matrix rnorm
  • 将字符串列拆分为多个虚拟变量

    作为 R 中 data table 包的相对缺乏经验的用户 我一直在尝试将一个文本列处理为大量指示符列 虚拟变量 每列中的 1 表示特定的子字符串是在字符串列中找到 例如我想处理这个 ID String 1 a b 2 b c 3 c 进入
  • purrr::可能函数可能无法与map2_chr函数一起使用

    我怀疑这是 purrr 包中的错误 但想先在 StackOverflow 中检查我的逻辑 在我看来 possibly功能在内部不起作用map2 chr功能 我正在使用 purrr 版本 0 2 5 考虑这个例子 library dplyr
  • 访问或解析 R 中的 summary() 中的元素

    我运行以下 R 命令来进行 Dunnett 测试并获取摘要 如何访问下面线性假设的每一行 这是摘要输出的一部分 基本上我不知道摘要的结构 我尝试使用名称 但它似乎不起作用 因为我没有看到任何命名属性来提供这一点 library multco
  • R 闪亮仪表板中的动态重复条件面板

    我正在尝试创建一个动态条件面板 所以我的条件如下 在用户界面中输入 selectInput inpt Input Number seq 1 50 1 selectize FALSE 我的条件面板 UI 输入是 conditionalPane
  • 警告消息 - 来自 dummies 包的 dummy

    我正在使用 dummies 包为分类变量生成虚拟变量 其中一些变量具有两个以上类别 testdf lt data frame A as factor c 1 2 2 3 3 1 B c A B A B C C C c D D E D D E
  • 如何按时间间隔匹配数据帧?

    这是我从数据记录器导入原始数据时经常出现的问题 温度记录仪设置为每十分钟记录一次温度 单独的气体记录仪设置为记录最后十分钟间隔内使用的气体 我想将这两个记录器的数据合并到一个数据框中进行绘图和分析 但时间并不完全一致 我希望每十分钟的时间段
  • 如何按用户定义(例如非字母顺序)对数据框进行排序[重复]

    这个问题在这里已经有答案了 给定一个数据框dna gt dna chrom start chr2 39482 chr1 203918 chr1 198282 chrX 7839028 chr17 3874 以下代码重新排序dna by ch
  • 如何纠正 data.frame 上的字符编码

    我有一个像这样的数据框 data names lt data frame DATA c 1 5 rownames data names lt c IV xc1N JOS xc9 LUC xcdA RAM xd3N TO xd1O data
  • 如何在 R 中执行近似(模糊)名称匹配

    我有一个专门用于生物学期刊的大型数据集 该数据集是由不同的人长时间编写的 因此 数据不采用单一格式 例如 在 作者 栏中我可以找到John Smith Smith John Smith J等 但它们是同一个人 我连最简单的动作都做不了 例如
  • 将列表中的每个元素转换为数据框中的一列

    假设我有以下列表 d library combinat d permn c a b c 这看起来如下 1 1 a b c 2 1 a c b 3 1 c a b 4 1 c b a 5 1 b c a 6 1 b a c 是否可以将此列表的
  • 闪亮的应用程序包:css 和所有 www/ 目录内容

    我正在尝试将 Shiny 应用程序转换为 R 包 但我在处理有关 www 目录以及 松散 文件的所有问题时遇到了问题 我闪亮的应用程序运行得很好 但是当我尝试 打包它 时 它不起作用 我闪亮的应用程序目录 my shiny app R ut
  • 在r中的某个阈值处破坏 cumsum() 函数

    例如我有以下代码 cumsum 1 100 我想打破它 如果一个元素 i 1 大于3000 我怎样才能做到这一点 因此 而不是这个结果 1 1 3 6 10 15 21 28 36 45 55 66 78 91 105 120 136 15
  • R,使用具有两种以上可能性的二项式分布

    我知道这可能是基本的 但我似乎有一个心理障碍 假设您想要计算在一个骰子上掷出 4 5 或 6 的概率 在 R 中 这很简单 sum 1 6 1 6 1 6 这给出了 1 2 这是正确答案 然而 我内心深处 可能应该保留的地方 认为我应该能够
  • 如何按定义的顺序将图像合并到一个文件中

    我有大约 100 张图像 png 我不想手动执行此操作 而是希望将它们按照定义的顺序 基于文件名 并排放置在一个 pdf 中 每行 12 个图像 有人有什么建议吗 我按照下面托马斯告诉我的方法尝试了 它把它们贴在旁边有一个黑边 我怎样才能去
  • R在Windows平台Rstudio上打印data.frames中的UTF-8代码

    当数据框中存在UTF 8字符时 将无法正常显示 例如 以下内容是正确的 gt U6731 1 朱 但是当我将其放入数据框中并打印出来时 它是 gt data frame x U6731 x 1
  • 要在子集中显示的非数字条目的维恩图

    我有以下数据框 SET1 SET2 SET3 par1 par2 par1 par2 par3 par2 par3 par4 par5 我想制作一个维恩图 其中所有这些 parX 元素都显示在各自的子集中 即作为标签 而不仅仅是重叠元素的数
  • 当将遗传算法与 lme4 一起使用时,glmulti 无限期运行

    我在 R 中使用 glmulti 进行模型平均 我的模型中有大约 10 个变量 使得详尽的筛选不切实际 因此我需要使用遗传算法 GA 调用 method g 我需要包含随机效应 因此我使用 glmulti 作为 lme4 的包装器 此处提供

随机推荐

  • 如何在窗体上双缓冲 .NET 控件?

    如何设置受保护DoubleBuffered遭受闪烁的窗体上的控件的属性 这是一个更通用的版本假人的解决方案 https stackoverflow com questions 76993 how to double buffer net c
  • 在辅助监视器中创建 WPF 窗口时遇到问题

    我正在努力在应用程序中实现一些类似 Chrome 的选项卡功能 但在正确生成新实例时遇到一些问题 我已经对各种解决方案进行了大量搜索和迭代 但尚未能够在第二台显示器上生成新窗口 这是使用线程 打开文件 将当前选项卡拖至其他显示器 新的应用程
  • 故事板入口点缺失

    在 xcode 7 2 中 对象列表中没有 Storyboard Entry Point 项 我需要使用 Storyboard Entry Point 我通过谷歌搜索找不到任何类似的问题 所以任何人都可以在这里帮助我 单击要作为情节提要入口
  • 从数据帧字典中获取单独的数据帧 Python

    我有一本字典d充满了数据帧的集合 key type size value gm1 dataframe mxn gm2 dataframe mxN gm10 dataframe nxM 我想使用它们来一一输出这些数据帧keys作为新数据框的名
  • 如何在 Bash 中为数组赋值?

    我正在尝试从文本文件中读取值列表 你好 txt 并将它们存储在一个数组中 counter 0 cat hello txt while read line do Unix Array counter line let counter coun
  • Kafka 适合运行公共 API 吗?

    我有一个想要发布的事件流 它被划分为主题 不断更新 需要水平扩展 并且没有 SPOF 很好 并且可能需要在某些情况下重播旧事件 所有的功能似乎都与 Kafka 的功能相匹配 我想通过任何人都可以连接并获取事件的公共 API 将其发布到全世界
  • 如何在 PHPWord 中更改纸张大小

    如何更改phpword中的纸张大小 我想将纸张尺寸更改为 Legal 纸张 8 5 英寸 x 14 英寸 我在文档中找不到该选项 我不确定如何应用该规则 并且文档中似乎没有与此相关的 纸张 或 大小 https phpword readth
  • 如何将vue文件样式提取到一个单独的style.css文件中

    我正在使用 vue loader 默认情况下 对于每个 vue 文件 您的视图中都有一个样式标签 这不是一件好事 根据 vue loader 文档我可以做到这一点 https vue loader vuejs org en configur
  • 修改SQL Server中的默认值

    我正在尝试使用 SQL Server 2008 中的 SQL 语句更改列的默认值 我在很多地方找到了如何在创建表 添加列时设置默认值 但没有找到如何设置它 一旦列已经存在就修改它 这就是我可以用来在添加时设置它的内容 ALTER TABLE
  • R 中第三维的平均值

    R中是否有任何快速方法或内置函数来计算基于第三维的平均值 例如我的数组是 1 1 2 1 1 3 2 2 4 2 1 2 1 11 13 2 12 14 3 1 2 1 21 23 2 22 24 我的输出是 1 2 1 mean 1 11
  • 我是否需要在我的 Firebase 项目中添加 SHA-1 指纹?

    在 Firebase 上有一个弹出窗口 显示我的项目可以添加指纹 SHA1 因为我只想使用一些 Firebase 服务 例如实时数据库 身份验证 我需要在我的项目中添加指纹吗 该图显示 仅在使用某些 Google Play 服务 如 OAu
  • img 标签如何通过 cors 标头获取内容

    为什么当我使用 fetch 从禁用响应 CORS 标头的服务器加载数据时 我预期会收到错误 Failed to load http www imgworlds com wp content uploads 2015 12 18 CONTAC
  • 在 MVC 中使用 Request.URL 和 Request.URLReferrer 获取当前链接的替代方案?

    我希望在我的中编写一个方法 属性BaseController允许任何操作获取当前 URL 的类 如果我打电话localhost Keyword Edit 1我可以用Request Url获取网址 但是 如果我的编辑视图中有部分视图 我需要使
  • SQLite3 数学函数 Python

    更新 SQLite 版本 3 5 0 后 可以使用 SQL 数学函数 如果我在 pycharm 查询中使用它 它效果很好 但我无法在 python 代码中执行查询 然后我收到以下错误消息 pandas io sql DatabaseErro
  • 在 LaTeX 中自动将新句子中第一个单词的第一个字母大写

    我知道 LaTeX 的吹嘘点之一是它没有这种微软式的行为 尽管如此 它有时还是有用的 LaTeX 已经在您键入 非反斜杠 句点后添加了一个额外的空格 因此应该可以使其自动将后面的字母大写 是否有一个明显的方法来编写一个宏来执行此操作 或者是
  • Python 中的“Zip”列表字典

    我有一个列表字典 我想将它们合并到一个命名元组列表中 我想要第一个元组中所有列表的第一个元素 第二个元组中的第二个元素 依此类推 Example key1 1 2 3 key2 4 5 6 key3 7 8 9 我希望生成的列表如下所示 k
  • 由于保存之前/之后的 CSV 差异而导致错误解析(Java w/ Apache Commons CSV)

    我有一个 37 列的 CSV 文件 我正在使用 Apache Commons CSV 1 2 在 Java 中解析该文件 我的设置代码如下 initialize FileReader object FileReader fileReader
  • Ruby—Open3.popen3 / 如何打印输出

    我有一个小红宝石脚本 它的作用是mysql导入方式 mysql u
  • 全日历和时区。求助,我做错了

    我不知何故做错了 我被时区绊倒了Fullcalendar 我尝试过设置ignoreTimezone真与假 不过似乎并不重要 它在下面的代码中的两个地方 因为我不确定它在哪里 我的数据源是隐藏的表单字段 数据流转out of FullCale
  • R - 如何为一个图例元素组合 expression()、paste() 和 formatC() 命令?

    我正在努力创造一个美好的传奇 它应该包含希腊字母 mu 我可以使用表达式 一些文字 即 和 mm 以及使用 formatC 格式化的模型系数来完成此操作 我运行没有问题的是要么没有希腊字母 然后我可以使用简单的粘贴命令 leg txt lt