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

ggplot图例标题设置:分组密度图保留单个图例时修改标题的方法

修改ggplot分组密度图的单个图例标题

嘿,你已经把color和linetype都绑定到同一个分组变量factor(G)上了,ggplot其实已经自动帮你把这两个美学属性合并成一个共享图例啦~要修改这个图例的标题,有两种简单的方法,都能完美保留单个图例:

方法1:用labs()快速统一设置

直接给color和linetype设置完全相同的标题,ggplot就会自动合并成一个带新标题的图例,这也是最常用的方法:

ggplot(data = data, aes(x=X, group=G, color=factor(G), linetype = factor(G))) +
  geom_density() +
  labs(color = "你的自定义标题", linetype = "你的自定义标题")

方法2:用guides()精细控制

如果你想更灵活地调整图例,也可以用guides()函数,同样把两个属性的标题设成一致就行:

ggplot(data = data, aes(x=X, group=G, color=factor(G), linetype = factor(G))) +
  geom_density() +
  guides(
    color = guide_legend(title = "你的自定义标题"),
    linetype = guide_legend(title = "你的自定义标题")
  )

甚至可以简化成只设置其中一个,把另一个设为FALSE(因为它们已经绑定到同一个变量了):

ggplot(data = data, aes(x=X, group=G, color=factor(G), linetype = factor(G))) +
  geom_density() +
  guides(
    color = guide_legend(title = "你的自定义标题"),
    linetype = FALSE
  )

实际示例

拿内置的mtcars数据集举个例子,按气缸数cyl分组画油耗mpg的密度图,把图例标题改成"气缸数量":

ggplot(data = mtcars, aes(x=mpg, group=cyl, color=factor(cyl), linetype = factor(cyl))) +
  geom_density() +
  labs(color = "气缸数量", linetype = "气缸数量")

运行后你会看到,图例只有一个,标题就是你设置的内容,同时保留了颜色和线型的区分~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.27 13:12:52