如何在R绘图(rpart.plot)中用Unicode显示上下式希腊字母分数
在rpart.plot中显示上下式分数形式的希腊字母标签
要在rpart.plot生成的决策树中显示上下式的分数(如$\frac{\nu_1}{4\beta}$),可以利用R的数学表达式系统结合rpart.plot的var.names参数实现,具体方案如下:
核心思路
rpart.plot支持接收R的expression()对象作为变量标签,通过frac()函数可生成标准上下式分数,希腊字母用对应TeX风格命令(如nu对应ν,beta对应β)表示,下标则通过[]语法实现。
修改后的可复现代码
library(rpart.plot) library(rpart) set.seed(1234) # 保持数据列名简洁,后续通过参数替换为数学表达式 df <- data.frame( nu = c(rnorm(mean = 1, n = 100), rnorm(mean = 2, n = 50)), rho = c(rnorm(n = 50), rnorm(sd=2, n=100)), cl = c(rep("TRUE", 100), rep("FALSE", 50)) ) tree <- rpart(cl ~ ., data = df) # 传入自定义数学表达式作为变量标签 rpart.plot( tree, type = 4, extra = 0, branch.lty = 3, box.palette = "RdYlGn", # 按预测变量顺序指定标签,生成上下式分数 var.names = c( expression(frac(nu[1], 4*beta)), # ν₁/4β的上下式形式 expression(rho[2]) # 带下标的ρ₂ ) )
关键说明
frac(分子, 分母):R表达式中生成上下式分数的专用函数,直接实现分子在上、分母在下的排版效果。- 希腊字母与下标:在
expression()内,nu对应ν、beta对应β,nu[1]会渲染为带下标1的ν₁。 var.names参数:需严格匹配模型中预测变量的顺序,这里模型的预测变量为nu和rho,因此对应传入两个表达式。
内容的提问来源于stack exchange,提问作者user3236841
相关产品推荐
相关产品推荐

