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

如何在Seaborn折线图中添加单一数值的基准线(y=50)?

为Seaborn折线图添加基准值虚线的两种方法

不用特意新增DataFrame列,有更简便的方式,当然你考虑的方法也能实现,下面分别说明:

方法一:直接用matplotlib的axhline(推荐)

Seaborn基于matplotlib开发,画完原始折线图后,直接调用axhline()就能快速添加水平基准线,完全不用修改原始数据:

import seaborn as sns
import matplotlib.pyplot as plt

# 绘制原折线图
sns.lineplot(data=df, x=df.index, y="Average Score")
# 添加y=50的虚线,可自定义颜色、标签
plt.axhline(y=50, linestyle='--', color='red', label='基准值')
# 显示图例(可选)
plt.legend()
plt.show()

这种方式代码简洁,适合单条基准线的场景,linestyle参数还能换成':'(点线)、'-.'(点划线)等样式。

方法二:新增DataFrame列实现

如果你想通过Seaborn的多折线逻辑来做,也可以给DataFrame加一列全为50的值,再分别绘制折线:

import seaborn as sns

# 新增基准值列
df['基准值'] = 50
# 绘制原始分数折线
sns.lineplot(data=df, x=df.index, y="Average Score", label='平均分数')
# 绘制基准虚线,指定样式
sns.lineplot(data=df, x=df.index, y="基准值", linestyle='--', color='red', label='基准值')
plt.legend()
plt.show()

要是需要统一管理多条线的样式,也可以把数据转成宽格式后用hue和style参数:

df_melt = df.melt(id_vars=df.index.name, value_vars=['Average Score', '基准值'], 
                  var_name='指标', value_name='分数')
sns.lineplot(data=df_melt, x=df.index.name, y='分数', hue='指标', 
             style='指标', dashes={'基准值': [2,2], 'Average Score': ''})
plt.show()

这种方法适合需要添加多条基准线,或者要和其他折线统一用Seaborn样式系统的场景。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 16:47:12