如何修改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
相关产品推荐
相关产品推荐

