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

如何为ggplot2的geom_function图层添加自定义名称的图例

要为geom_function生成自定义颜色、线型的图例,核心逻辑是:ggplot2的图例仅基于aes()内的映射生成,你之前把颜色、线型写在aes()外属于固定全局样式,不会触发图例生成逻辑,调整方案如下:

修改后可直接运行的代码

# 示例自定义三个函数,可替换为你自己的函数定义
fun1 <- function(x) sin(x * pi)
fun2 <- function(x) cos(x * pi)
fun3 <- function(x) x ^ 2

ggplot(data = data.frame(x = seq(0, 1, by = 0.01)), mapping = aes(x = x)) +
  geom_function(fun = fun1, aes(color = "fun1", linetype = "fun1")) +
  geom_function(fun = fun2, aes(color = "fun2", linetype = "fun2")) +
  geom_function(fun = fun3, aes(color = "fun3", linetype = "fun3")) +
  # 自定义颜色映射,name参数为图例整体名称
  scale_color_manual(name = "函数类型",
                     values = c("fun1" = "red",
                                "fun2" = "dark green",
                                "fun3" = "blue")) +
  # 自定义线型映射,name需和上面scale_color_manual的name完全一致,两者会合并为同一个图例
  scale_linetype_manual(name = "函数类型",
                        values = c("fun1" = "11",
                                   "fun2" = "solid",
                                   "fun3" = "dashed"))

自定义调整方法

  • 要修改单条曲线的图例显示名称,直接修改aes()中color、linetype对应的字符串即可,只要和后续scale配置里的键名一一对应即可
  • 要修改图例整体的名称,直接修改两个scale_*_manual里的name参数值即可
  • 如果不需要同时展示颜色和线型的图例,删掉对应aes()内的映射和对应的scale配置即可

内容的提问来源于stack exchange,提问作者An Ignorant Wanderer

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 10:36:02