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

在Matplotlib中叠加多时间序列:突出加州烟草趋势

实现方法

假设你的DataFrame包含State(州名)、Year(年份)、PacksPerCapita(人均香烟销量)这三列,按以下步骤操作即可实现需求:

  1. 分离加州与其他州数据
    先把数据拆分为加州数据和非加州数据两个子集:

    # 筛选非加州数据
    non_ca_data = df[df['State'] != 'California']
    # 筛选加州数据
    ca_data = df[df['State'] == 'California']
    
  2. 绘制所有非加州州的细灰度趋势线
    遍历每个非加州州的时间序列,用极细的灰度线绘制。这里可以用groupby按州分组后循环:

    import matplotlib.pyplot as plt
    
    # 创建画布
    plt.figure(figsize=(10,6))
    
    # 遍历每个非加州州的数据
    for state, group in non_ca_data.groupby('State'):
        # 绘制极细灰度线:浅灰色+极窄线宽+轻微透明度,避免线条重叠过密
        plt.plot(group['Year'], group['PacksPerCapita'], color='#cccccc', linewidth=0.4, alpha=0.7)
    
  3. 叠加加州的趋势线(突出显示)
    最后绘制加州的线,用更醒目的样式,确保它在所有灰度线之上:

    plt.plot(ca_data['Year'], ca_data['PacksPerCapita'], color='#0066cc', linewidth=2, label='California')
    
  4. 完善图表细节
    添加标题、坐标轴标签和图例,让图表更清晰:

    plt.title('Per Capita Cigarette Sales: California vs. Other States')
    plt.xlabel('Year')
    plt.ylabel('Packs Per Capita')
    plt.legend()
    plt.grid(alpha=0.3)
    plt.show()
    

关键参数说明

  • linewidth=0.4:设置非加州线条的宽度,确保线条极细且不会遮挡彼此
  • color='#cccccc':使用浅灰色,避免抢加州线条的风头
  • alpha=0.7:给灰度线添加轻微透明度,优化重叠区域的视觉效果

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 05:33:18