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

seaborn散点图如何按hue分组连接同色起止日期标记点

Seaborn同hue分组起止点配对连线实现方案

需求说明

数据集包含Start_Date(开始日期)、End_Date(结束日期)两个日期字段,需按Conf_Num字段分组(对应seabornhue参数配色规则),将同组同色的开始、结束日期散点用直线连接,实现配对连线效果。

当前已完成散点绘制的代码如下:

sns.scatterplot(data=df, y=df.index, x='Start_Date', hue='Conf_Num', legend=False)
sns.scatterplot(data=df, y=df.index, x='End_Date', hue='Conf_Num', legend=False)

使用的示例数据结构:

Conf_NumStart_DateEnd_Date
02/8/20213/1/2021
12/15/202112/31/2021
23/1/20218/29/2021

当前未连线的输出效果:
当前未连线的输出效果

实现步骤

核心逻辑:逐行遍历数据集,用matplotlib原生plot方法绘制每行起止点的水平连线,提前匹配seaborn hue的配色映射保证连线和散点颜色一致,最后叠画散点保证点层级高于连线。

  1. 预处理日期格式,避免坐标轴解析异常
    import pandas as pd
    import seaborn as sns
    import matplotlib.pyplot as plt
    
    # 把日期列转为标准datetime格式
    df['Start_Date'] = pd.to_datetime(df['Start_Date'])
    df['End_Date'] = pd.to_datetime(df['End_Date'])
    
  2. 生成配色映射,保证连线和散点颜色完全匹配
    # 生成和Conf_Num一一对应的调色板,和seaborn默认hue配色规则对齐
    color_palette = sns.color_palette(n_colors=df['Conf_Num'].nunique())
    conf_color_map = dict(zip(sorted(df['Conf_Num'].unique()), color_palette))
    
  3. 绘制连线+散点
    plt.figure(figsize=(10, 6))
    
    # 先绘制底层连线
    for row_idx, row_data in df.iterrows():
        # 每条线的x轴为起止日期,y轴固定为当前行的索引值,和原散点y轴逻辑一致
        plt.plot(
            [row_data['Start_Date'], row_data['End_Date']],
            [row_idx, row_idx],
            color=conf_color_map[row_data['Conf_Num']],
            linewidth=2
        )
    
    # 叠画上层散点,设置zorder保证点不被连线遮挡
    sns.scatterplot(
        data=df, y=df.index, x='Start_Date', hue='Conf_Num',
        palette=conf_color_map, legend=False, s=80, zorder=5
    )
    sns.scatterplot(
        data=df, y=df.index, x='End_Date', hue='Conf_Num',
        palette=conf_color_map, legend=False, s=80, zorder=5
    )
    
    # 自动调整日期标签角度,避免重叠
    plt.gcf().autofmt_xdate()
    plt.show()
    

注意事项

  • 不需要将宽表转为长表,直接适配现有数据结构,改动量小
  • 显式传入palette参数给散点绘制方法,避免seaborn自动分配颜色和连线颜色不匹配
  • zorder=5参数强制散点显示在连线之上,避免视觉上点被线覆盖

内容的提问来源于stack exchange,提问作者vincenzo Scotto Di Uccio

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.12 16:15:51