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

如何使用seaborn绘制多折线Lineplot,x轴为日期并排除非日期列

实现方法

你可以按照「筛选日期列→转换为长表格式→绘图」的步骤实现需求,具体代码如下:

1. 筛选日期列

两种通用方式可选:

  • 若确定another_var固定为最后一列,直接切片排除即可:
date_cols = df.columns[:-1]
  • 若非日期列位置不固定,可通过日期格式正则匹配筛选:
import re
date_cols = [col for col in df.columns if re.match(r'\d{1,2}/\d{1,2}/\d{2}', col)]

2. 转换为seaborn适配的长表格式

seaborn的lineplot默认需要长格式数据,同时需要把索引列location转为普通列:

import pandas as pd
# 重置索引将location转为普通列,再做宽转长
df_long = df.reset_index().melt(
    id_vars = 'location',
    value_vars = date_cols,
    var_name = 'date',
    value_name = 'count'
)
# 可选:将日期列转为时间类型,优化x轴显示排序
df_long['date'] = pd.to_datetime(df_long['date'])

3. 绘制折线图

import seaborn as sns
import matplotlib.pyplot as plt

sns.lineplot(
    data = df_long,
    x = 'date',
    y = 'count',
    hue = 'location' # 按location自动分组生成A、B、C三条折线
)
plt.show()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 01:45:04