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

如何用seaborn.lineplot绘制多时间序列重叠折线图?

多时间序列重叠折线图实现方案

数据说明

你的text.txt数据每行开头为序列名称,后续为对应年份的数值,x轴对应年份范围是2001-2021(共21个年份,与每行数值数量匹配)。

实现步骤

  1. 数据读取与格式转换
    使用pandas读取文本数据,将其整理为Seaborn偏好的整洁数据格式(长表结构):

    import pandas as pd
    import seaborn as sns
    import matplotlib.pyplot as plt
    
    # 读取文本数据,按空格分隔
    df = pd.read_csv('text.txt', sep='\s+', header=None)
    # 设置列名:第一列为序列名称,后续为对应年份的数值
    years = range(2001, 2022)
    df.columns = ['series'] + list(years)
    # 转换为长表格式,方便Seaborn调用
    df_long = df.melt(id_vars='series', var_name='year', value_name='value')
    
  2. 绘制重叠折线图
    使用seaborn.lineplot,通过hue参数区分不同时间序列,自动生成颜色区分和图例:

    # 设置绘图风格
    sns.set_style("darkgrid")
    
    # 绘制折线图
    plt.figure(figsize=(12, 6))
    sns.lineplot(data=df_long, x='year', y='value', hue='series', marker='o', linewidth=2)
    
    # 调整图表细节
    plt.title('多时间序列重叠折线图', fontsize=14)
    plt.xlabel('年份', fontsize=12)
    plt.ylabel('数值', fontsize=12)
    plt.xticks(rotation=45)
    plt.legend(title='序列名称', bbox_to_anchor=(1.05, 1), loc='upper left')
    plt.tight_layout()
    
    # 显示或保存图表
    plt.show()
    # plt.savefig('time_series_plot.png', dpi=300)
    

关键说明

  • hue='series'是核心参数,它会根据序列名称自动分配不同颜色,并生成对应的图例。
  • 转换为长表格式是Seaborn绘图的关键,因为Seaborn的大部分绘图函数都基于整洁数据设计。
  • 通过marker、linewidth等参数可以自定义折线的样式,提升图表可读性。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 13:22:07