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

如何用Plotnine将熔解后的DataFrame绘制成两条独立折线?

解决ggplot线条未分离的问题

问题分析

你当前代码的核心问题有两个:

  • color = "category"中加了引号,ggplot会把它当作固定字符串,而非引用DataFrame里的category列,导致所有数据用同一种颜色,且无法区分组别
  • group = 1强制将所有数据归为同一组,两条类别数据被合并成了一条线

另外,SleepDay当前是字符串格式,建议转换为日期类型,避免x轴排序混乱。

修正后的代码

# 先转换SleepDay为日期格式(可选但推荐)
long_data['SleepDay'] = pd.to_datetime(long_data['SleepDay'])

# 绘制分离的线条
ggplot(long_data, aes(x=SleepDay, y=value, color=category, group=category)) +\
    geom_line() +\
    theme(axis_text_x=element_text(rotation=75, hjust=1))

关键修改说明

  • 移除category的引号:让ggplot正确识别数据列,自动为不同类别分配颜色
  • 将group映射到category:明确告诉ggplot按照category的不同值分组绘制线条(其实当color映射到分类列时,ggplot会自动处理分组,显式指定group更直观)
  • 转换日期格式:确保x轴的日期按时间顺序排列,避免字符排序导致的错位

这样就能得到两条分别对应TotalMinutesAsleep和TotalTimeInBed的独立线条了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 23:05:03