云计算百科
云计算领域专业知识百科平台

R语言入门——ggplot2图例增加公式

目录

  • 0、引言
  • 1、方法1:使用 expression() 在 labs() 或 scale_*_manual() 中
    • 示例数据
    • 在颜色图例中添加公式
    • 在图例标签中使用公式:
  • 2、方法2:使用 bquote() 和 .() 插入变量值
    • 动态变量
  • 3、方法3:多行公式或复杂表达式
  • 4、方法4:图例标题使用复杂表达式
  • 5、方法5:使用 scale_color_discrete() 的 labels 参数(推荐,比较自动)
  • 附录:常用的数学表达式语法

0、引言

在ggplot2中,图例添加公式(数学表达式)主要有以下几种方法,我会按常用程度和灵活性排序介绍

1、方法1:使用 expression() 在 labs() 或 scale_*_manual() 中

library(ggplot2)

示例数据

df <- data.frame(
x = 1:10,
y = 1:10,
group = rep(c("A", "B"), each = 5)
)

在颜色图例中添加公式

ggplot(df, aes(x, y, color = group)) +
geom_point(size = 3) +
labs(color = expression(alpha + beta^2)) # 图例标题使用公式

在这里插入图片描述

在图例标签中使用公式:

ggplot(df, aes(x, y, color = group)) +
geom_point(size = 3) +
scale_color_manual(
values = c("red", "blue"),
labels = c(expression(alpha), expression(beta^2)) # 标签使用公式
)

在这里插入图片描述

2、方法2:使用 bquote() 和 .() 插入变量值

动态变量

my_var <- 2

ggplot(df, aes(x, y, color = group)) +
geom_point(size = 3) +
scale_color_manual(
values = c("red", "blue"),
labels = c(
bquote(alpha == .(my_var)), # 插入变量值
bquote(beta^2 == .(my_var^2))
)
)

在这里插入图片描述

3、方法3:多行公式或复杂表达式

使用 atop() 或 paste() 组合多个表达式:

# 多行公式
ggplot(df, aes(x, y, color = group)) +
geom_point(size = 3) +
scale_color_manual(
values = c("red", "blue"),
labels = c(
expression(atop(alpha, beta)), # 上下排列
expression(paste(alpha, " = ", beta)) # 水平排列
)
)

在这里插入图片描述

4、方法4:图例标题使用复杂表达式

ggplot(df, aes(x, y, color = group)) +
geom_point(size = 3) +
labs(
color = expression(frac(alpha, beta) ~ gamma^{2})
)

在这里插入图片描述

5、方法5:使用 scale_color_discrete() 的 labels 参数(推荐,比较自动)

# 直接替换标签,颜色自动分配
ggplot(df, aes(x, y, color = group)) +
geom_point(size = 3) +
scale_color_discrete(
labels = c("A" = expression(alpha), # A 显示为 α
"B" = expression(beta)) # B 显示为 β
)

在这里插入图片描述

附录:常用的数学表达式语法

# 常用符号
expression(alpha) # α
expression(beta) # β
expression(gamma) # γ
expression(Delta) # Δ
expression(Omega) # Ω

# 上下标
expression(x^2) # 上标
expression(x[2]) # 下标
expression(x^{2 + 3}) # 复杂上标

# 分数
expression(frac(a, b)) # a/b

# 根号
expression(sqrt(x)) # √x
expression(root(3, x)) # 三次根

# 求和/积分
expression(sum(x[i], i==1, n))
expression(integral(f(x) * dx))

# 希腊字母 + 上下标组合
expression(alpha[1]^2)

# 空格控制
expression(alpha ~ beta) # 有空格
expression(alpha * beta) # 无空格
expression(alpha + beta) # 加号

赞(0)
未经允许不得转载:网硕互联帮助中心 » R语言入门——ggplot2图例增加公式
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!