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

Sympy绘图X轴位置异常如何解决?

解决spb绘图X轴偏移问题

问题原因

你设置了aspect="equal"参数,它会强制X、Y轴的单位像素长度完全相等。但你的Y轴取值范围仅为26.75-31(跨度4.25),X轴范围是-2.0-2.3(跨度4.3),由于Y轴整体数值远高于X轴,为维持等比例,绘图引擎自动调整了坐标轴位置,导致X轴零点视觉上偏离预期。

修复方案

方案1:移除等比例约束(推荐)

删除aspect="equal"参数,绘图引擎会根据数据范围自动适配坐标轴比例,X轴零点将回到正常位置:

from sympy import *
import spb

question = "100*(x)**2-30*x+30"
x,y = symbols("x y")

plot = spb.plot(
    eval(question), (x, -2.0, 2.3),
    {"color": "blue", "markersize": 1},
    legend=False,
    ylim=(26.75, 31),
    xlim=(-2.0, 2.3),
    show=True,
    adaptive=False,
    n=70000,
    is_point=True,
    axis_center="auto"
)

方案2:手动指定坐标轴中心

如果必须保留aspect="equal",可以手动设置axis_center为期望的坐标,让X轴零点对应你需要的Y轴位置:

plot = spb.plot(
    eval(question), (x, -2.0, 2.3),
    {"color": "blue", "markersize": 1},
    legend=False,
    aspect="equal",
    ylim=(26.75, 31),
    xlim=(-2.0, 2.3),
    show=True,
    adaptive=False,
    n=70000,
    is_point=True,
    axis_center=(0, 28.75)  # 手动指定X=0、Y=28.75为坐标轴中心
)

额外优化建议

  • 避免用eval()解析表达式,推荐更安全的sympify():expr = sympify(question),绘图时传入expr即可。
  • n=70000会生成大量点,可能导致绘图卡顿,可根据需求降低该数值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 08:55:25