You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在Rmd中将R变量值嵌入LaTeX格式的绘图图例

在R绘图图例中同时展示变量数值与LaTeX格式的μ、σ(Rmd环境下)

问题背景

需要在R绘图的图例中同时实现两个需求:

  • 展示计算得到的变量数值(如MLE估计的均值和标准差)
  • 让“μ”和“σ”以LaTeX格式正确渲染为符号

现有方法仅能单独实现其中一项,且Rmd文档中无法直接引入额外LaTeX包,因此需要适配R环境的解决方案。

解决方案

使用R的bquote()函数,它支持在表达式中插入变量实际值的同时,保留LaTeX格式的数学符号。bquote()通过.包裹变量名,将变量的当前数值替换到表达式中,完美适配Rmd环境下的绘图需求。

完整代码

p <- seq(0, 1, 0.001)
h_p <- asin(sqrt(p))

mle_mu <- mean(h_p)
mle_sigma <- sd(h_p)

digits <- 3
plot(ecdf(h_p), main = 'Cumulative Distribution Function',
     xlab = 'Value', ylab = 'CDF')

x_values <- seq(-3, 3, length.out = 1000)
cdf_values <- pnorm(x_values, mean = mle_mu, sd = mle_sigma)
lines(x_values, cdf_values, col = 'blue', type = "l")

legend('bottomright', 
       legend = c('ECDF of h(p)', 
                  bquote(Normal~CDF~(hat(mu) == .(round(mle_mu, digits)), hat(sigma) == .(round(mle_sigma, digits))))), 
       col = c('black', 'blue'), 
       lty = 1)

关键代码说明

  • bquote()中的~用于添加空格,保证图例文本排版美观
  • hat(mu)和hat(sigma)会被渲染为带帽子的μ和σ符号(对应MLE估计量的常用表示)
  • .(round(mle_mu, digits))将变量mle_mu的数值保留指定小数位后插入到表达式中,实现动态数值展示

内容的提问来源于stack exchange,提问作者Roman Stadler

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.23 15:47:20