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

ggplot绘制密度图时颜色标签倒置问题咨询

问题原因及解决办法

为什么颜色和标签倒置?

你把fill参数放在了aes()括号里,这是核心问题。ggplot里aes()是用来映射数据变量到图形属性的,不是直接设置颜色值。当你写fill = "red"在aes里时,ggplot会把"red"、"blue"当成分类变量的两个水平,然后按默认的因子顺序(字母顺序,blue排在red前面)分配颜色,结果就出现了标签和实际颜色不匹配的倒置情况。

两种解决方式

1. 不需要图例,直接指定颜色

把fill移出aes(),放在geom_density()的参数里,直接设置填充色:

ggplot(dataset) + 
  geom_density(aes(x = `Real Wage 1`), fill = "red", alpha = 0.5)+
  geom_density(aes(x = `Real Wage 2`), fill = "blue", alpha = 0.5)+
  theme_classic()

2. 需要图例的规范做法(推荐)

ggplot更适合处理长格式数据,先把数据整理成tidy格式,再通过变量映射来控制颜色,这样图例也能正确对应:

# 先加载tidyr包整理数据
library(tidyr)
tidy_wage <- dataset %>%
  pivot_longer(
    cols = c(`Real Wage 1`, `Real Wage 2`),
    names_to = "工资类型", 
    values_to = "实际工资"
  )

# 绘图并指定对应颜色
ggplot(tidy_wage, aes(x = 实际工资, fill = 工资类型)) +
  geom_density(alpha = 0.5) +
  scale_fill_manual(values = c(`Real Wage 1` = "red", `Real Wage 2` = "blue")) +
  theme_classic()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 04:08:25