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

Matplotlib复用坐标参数警告 供需曲线均衡点绘制异常如何解决

问题解决方法

异常根因

  • 代码中ax = plt.axes()这一行会在当前画布上新建空白坐标轴,默认和原有绘图的坐标轴位置重叠,原有的供需曲线、均衡点会被新坐标轴遮挡,同时新坐标轴的刻度范围和原有绘图不匹配,最终导致显示异常。
  • 不需要新建坐标轴,直接获取当前已有的坐标轴对象即可完成标注操作。

修正后完整代码

import numpy as np
import sympy as sy
import matplotlib.pyplot as plt

def S(q):
    return (q**2)

def D(q):
    return (q - 20)**2

# 计算均衡点
q = sy.Symbol('q')
eq = sy.Eq(S(q), D(q))
q_eq = sy.solve(eq)[0]
p_eq = S(q_eq)

# 绘图
plt.figure(figsize= (10, 8))
q2 = np.linspace(0, 16, 1000)
plt.plot(q2, S(q2), label = "S Curve")
plt.plot(q2, D(q2), label = "D Curve")
plt.plot(q_eq, p_eq, 'o', markersize = 14)

plt.title("Equilibrium point")
plt.legend(frameon = False)
plt.xlabel("Quantity")
plt.ylabel("Price")

# 关键修改:获取当前已有坐标轴,而非新建
ax = plt.gca()
ax.annotate(f'Equilibrium at ({q_eq}, {p_eq})', xy=(q_eq,p_eq), xytext=(10, 250), arrowprops=dict(facecolor='black'))

plt.show()

效果验证

修改后即可正常显示供需曲线、均衡标记点与标注箭头,与预期效果一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 12:15:02