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

如何修改Python绘图代码将回归线替换为拟合曲线并延伸至图表两侧

实现方案

以下是满足需求的完整可运行代码,替换了柱状图为matplotlib原生散点图,使用二阶多项式拟合生成曲线,且自动向两侧延伸5个单位的长度:

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

data = {'Days':  [5, 10, 15, 20],
        'Impact': [33.7561, 30.6281, 29.5748, 29.0482]
        }

a = pd.DataFrame(data, columns = ['Days','Impact'])
print(a)

# 创建画布
fig, ax = plt.subplots()

# 绘制matplotlib原生散点图,替换原柱状图
ax.scatter(a['Days'], a['Impact'], marker="+", color="darkblue", s=60)

# 二阶多项式拟合,可根据需求调整阶数(修改最后一个参数即可,比如3为三阶拟合)
fit_order = 2
z = np.polyfit(a['Days'], a['Impact'], fit_order)
p = np.poly1d(z)

# 生成延伸后的拟合x区间:左右各延伸5个单位,可自行调整延伸长度
extend_length = 5
x_fit = np.linspace(a['Days'].min() - extend_length, a['Days'].max() + extend_length, 100)
y_fit = p(x_fit)

# 绘制拟合曲线
ax.plot(x_fit, y_fit, color="orange", linestyle="-", linewidth=2)

# 样式调整
sns.despine(offset=10, trim=False)
ax.set_ylabel("Impact")
ax.set_xlabel("Days")
plt.show()

关键调整说明

  • 直接使用plt.scatter()绘制散点图,无需额外调整x轴刻度标签
  • 拟合方式可灵活替换:如果你的数据更符合指数/对数衰减特征,可以将多项式拟合替换为对应拟合方法
  • 调整extend_length参数即可修改曲线向两侧延伸的长度,调整fit_order即可修改多项式拟合的阶数
  • 散点大小、颜色,曲线的颜色、线型等样式参数可根据需求自行修改

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.12 15:48:03