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

如何用Pandas或Seaborn在柱状图上添加回归趋势线?

在Seaborn柱状图上添加回归趋势线的方法

嘿,刚入门Pandas和Seaborn的话,遇到这个问题太正常啦!其实核心是要把分类的年份轴和回归线需要的连续数值轴对应起来,我给你一步步讲清楚怎么实现:

第一步:确保数据格式正确

首先你得有一个对应年份的列(比如叫Year),如果你的12年数据是用行索引表示的,先把它转成单独的列:

# 假设索引是从0到11,对应2010-2021年
sampleSizes['Year'] = sampleSizes.index + 2010
# 如果年份是字符串格式,转成整数方便回归计算
sampleSizes['Year'] = sampleSizes['Year'].astype(int)

第二步:同时绘制柱状图和回归线

Seaborn的barplot用来画柱状图,regplot可以在同一个轴上叠加回归趋势线,代码示例如下:

import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt

# 设置画布大小
plt.figure(figsize=(10, 6))

# 绘制柱状图
sns.barplot(
    data=sampleSizes,
    x='Year',
    y='Sample Size',
    color='lightblue',
    label='Annual Sample Size'
)

# 叠加回归趋势线(scatter=False表示不画散点,只画线条)
sns.regplot(
    data=sampleSizes,
    x='Year',
    y='Sample Size',
    scatter=False,
    color='darkred',
    line_kws={'lw': 2},  # 设置线条粗细
    label='Trend Line'
)

# 美化图表
plt.title('Sample Size Trend Over 12 Years', fontsize=14)
plt.xlabel('Year', fontsize=12)
plt.ylabel('Sample Size', fontsize=12)
plt.legend()
plt.xticks(rotation=45)  # 如果年份太多,旋转x轴标签避免重叠

# 显示图表
plt.show()

关键点说明

  • regplot需要x轴是连续数值,所以必须把年份转换成整数/浮点数,不能是字符串或分类类型
  • 用同一个plt.figure()画布,两个绘图函数会自动共用同一个坐标轴,实现叠加效果
  • 如果想让趋势线更贴合,也可以尝试调整regplot的order参数(比如设置order=2来拟合二次曲线)

这样你就能在柱状图上清晰看到每年样本量的变化,同时通过回归线直观展示整体增减趋势啦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 09:00:16