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

如何基于df的列绘制面积图并叠加折线,支持双Y轴分别展示?

实现方案

你可以通过matplotlib的双Y轴接口twinx()分别绘制面积图和折线,完整实现代码如下:

import pandas as pd
import matplotlib.pyplot as plt

# 已提前加载好你的df数据,先把日期列设为索引方便绘图
df = df.set_index('index')

# 生成左Y轴,用于展示面积图的人数量级数据
fig, ax1 = plt.subplots(figsize=(10, 6))
df[['Alive Past & Future', 'Alive Past']].plot.area(stacked=False, ax=ax1, alpha=0.7)
ax1.set_ylabel('人数统计')
ax1.legend(loc='upper left')

# 生成右Y轴,用于展示折线的百分比数据
ax2 = ax1.twinx()
df['%'].plot(ax=ax2, color='crimson', marker='o', linewidth=2, label='占比')
ax2.set_ylabel('占比')
ax2.legend(loc='upper right')

plt.show()

补充说明:

  • 双Y轴完全隔离两类数据的数值范围,不会出现量级差异导致的某类数据显示异常问题
  • 可以自行调整alpha(面积透明度)、折线颜色、标记样式、画布尺寸等参数优化显示效果
  • 如果需要把百分比显示为0-100的格式,只需要在绘图前加一行df['%'] = df['%'] * 100即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 03:54:03