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

如何使用Python将股票图表中已绘制的趋势线向右延长

股票趋势线向右延长实现方案

核心逻辑:你当前的代码仅绘制了两个最低点之间的线段,要延长趋势线只需要先拟合两点对应的线性方程,再计算目标x轴位置对应的y值,将线段终点延伸到该位置即可。

修改后的完整代码如下:

import matplotlib.pyplot as plt
import matplotlib.dates as mdates
import yfinance as yf

df = yf.download('aapl', '2020-01-01', '2021-01-01')

df1 = df[df.index > '2020-06-01']
df2 = df[df.index < '2020-06-02']
lowest2 = df1[df1.Close == df1.Close.min()]
lowest1 = df2[df2.Close == df2.Close.min()]

fig, ax = plt.subplots(figsize= (10, 6))
ax.plot(df.index, df.Close)

# 趋势线延长逻辑
# 将日期转为matplotlib内部数值格式用于计算斜率
x1 = mdates.date2num(lowest1.index[0])
x2 = mdates.date2num(lowest2.index[0])
y1 = lowest1.Low[0]
y2 = lowest2.Low[0]

# 计算线性方程参数 y = kx + b
k = (y2 - y1) / (x2 - x1)
b = y1 - k * x1

# 取x轴终点(数据集最后一个日期)计算延长后的y值,如需延长到数据集外可替换为自定义日期
x_extend = mdates.date2num(df.index[-1])
y_extend = k * x_extend + b

# 绘制包含延长段的趋势线,可自定义color参数调整线条颜色
ax.plot([lowest1.index[0], lowest2.index[0], df.index[-1]], [y1, y2, y_extend], color='orange')

ax.set_xlim(df.index[0], df.index[-1])
plt.show()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 05:21:02