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

如何在R的ggplot中添加矩阵形式的数学符号?

在R绘图中添加矩阵表达式的方法

完全可以在R的绘图里展示矩阵表达式,和你之前显示线性方程的逻辑一致,利用R的plotmath语法就能实现,核心是用matrix()函数在expression()中定义矩阵的元素、行列布局。

基础绘图示例

不管是给图加标题,还是在图内指定位置添加矩阵,都可以用expression()包裹矩阵语法:

# 标题中显示2×2协方差矩阵
curve(dnorm, from = -3, to = 3, n = 1000, 
      main = expression("协方差矩阵:" ~ matrix(c(sigma[1]^2, sigma[12], sigma[12], sigma[2]^2), nrow=2, ncol=2)))

# 在图内指定位置添加带符号的矩阵
text(0, 0.3, expression(bold(Theta) == matrix(c(theta[11], theta[12], theta[21], theta[22]), 2, 2)), cex=1.2)

matrix()的参数说明:

  • 第一个参数是矩阵元素的向量(默认按列排列,用byrow=TRUE可改为按行排列)
  • nrow/ncol指定矩阵的行/列数

ggplot2示例

在ggplot2的标题、注释中添加矩阵,同样用expression():

library(ggplot2)
ggplot() +
  ggtitle(expression("线性模型系数矩阵:" ~ matrix(c(beta[0], beta[1], alpha[0], alpha[1]), 2, 2))) +
  # 在图内添加矩阵运算表达式
  annotate("text", x=0, y=0, 
           label=expression(hat(Y) == X %*% matrix(c(beta[0], beta[1]), nrow=2)), 
           size=5)

进阶:带括号的矩阵

如果需要给矩阵加上括号,可用bgroup()实现:

curve(dnorm, from = -3, to = 3, n = 1000)
text(-2, 0.2, 
     expression(bgroup("[", matrix(c(a, b, c, d), 2, 2), "]") %*% bgroup("(", list(x, y), ")") == bgroup("(", list(a*x + b*y, c*x + d*y), ")")), 
     cex=1.1)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 05:46:27