如何在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
相关产品推荐
相关产品推荐

