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

如何按婚姻状态绘制工资的密度图?现有ggplot2代码仅生成单条曲线

修正方案:按婚姻状态分组绘制工资密度图

你的代码只生成单条曲线的核心原因是married变量为数值型(0/1),ggplot将其识别为连续变量,而非离散的分组标记,因此无法按婚姻状态拆分曲线。以下是两种修正方式:

方式1:提前将婚姻状态转为因子(推荐)

先把married变量转换为因子类型,明确分组标签,再绘图:

nls80 = read.csv('https://raw.githubusercontent.com/bandcar/Examples/main/nls80(1).csv')
library(ggplot2)

# 将数值型married转为因子,自定义标签
nls80$married <- factor(nls80$married, levels = c(0, 1), labels = c("未婚", "已婚"))

# 绘制分组密度图
ggplot(nls80, aes(x = wage, colour = married)) +
  geom_density() +
  # 可选:添加更清晰的标签
  labs(
    title = "不同婚姻状态的工资分布密度图",
    x = "工资",
    y = "密度",
    colour = "婚姻状态"
  )

方式2:在绘图时直接转换变量类型

如果不想修改原始数据,可以在aes映射中直接转换married的类型:

nls80 = read.csv('https://raw.githubusercontent.com/bandcar/Examples/main/nls80(1).csv')
library(ggplot2)

ggplot(nls80, aes(x = wage, colour = factor(married, labels = c("未婚", "已婚")))) +
  geom_density() +
  labs(colour = "婚姻状态")

关键说明

  • 当married是数值型时,colour = married会映射为连续的颜色渐变,ggplot不会进行分组;转为因子后,变量变为离散的两类,ggplot会自动按分组绘制两条独立的密度曲线。
  • 可以通过str(nls80$married)命令查看变量的原始类型,确认是否为数值型。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 11:57:26