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

如何用SymPy在单变量线性方程的数轴图上绘制整数点

用SymPy结合Matplotlib绘制单变量方程的数轴解图

SymPy自带的plot函数更适合绘制函数曲线,要实现你需要的数轴标记样式,建议结合Matplotlib来自定义绘图,以下是完整实现代码:

from sympy import symbols, Eq, solve, init_printing
import matplotlib.pyplot as plt

# 初始化SymPy,打印美观的公式
init_printing(use_unicode=True)

# 定义变量和方程
x = symbols("x")
ekpr = Eq(4*(2*x + 3), 10*x + 8)
print("方程:")
display(ekpr)

# 求解方程
sol = solve(ekpr, x)[0]
print(f"\n方程的解:x = {sol}")

# ---------------------- 绘制数轴图 ----------------------
fig, ax = plt.subplots(figsize=(10, 2))

# 绘制x轴(带箭头)
ax.plot([-5, 7], [0, 0], color='black', linewidth=2, marker='>', markersize=8, markeredgecolor='black', markerfacecolor='black')
ax.plot([-5, 7], [0, 0], color='black', linewidth=2, marker='<', markersize=8, markeredgecolor='black', markerfacecolor='black')

# 标记x轴上的整数刻度
for num in range(-5, 8):
    ax.plot(num, 0, marker='|', color='black', markersize=10)
    ax.text(num, -0.1, str(num), ha='center', fontsize=10)

# 在解的位置绘制实心点和标注箭头
ax.plot(sol, 0, marker='o', color='red', markersize=12, zorder=5)
ax.annotate(f'x = {sol}', xy=(sol, 0), xytext=(sol, 0.3), 
            arrowprops=dict(facecolor='red', shrink=0.05),
            ha='center', fontsize=12, color='red')

# 隐藏y轴和多余边框
ax.spines[['top', 'right', 'left']].set_visible(False)
ax.set_yticks([])
ax.set_ylim(-0.5, 0.8)

plt.tight_layout()
plt.show()

代码说明:

  • 先用SymPy完成方程的定义与求解,得到解x=2
  • 用Matplotlib创建画布,绘制带箭头的x轴作为数轴
  • 标记出指定范围(-5到7)内的所有整数刻度
  • 在解的位置绘制红色实心点,并添加带箭头的标注
  • 隐藏不必要的y轴和边框,只保留数轴样式

运行后就能得到类似你需要的数轴图,清晰标记出方程的解位置。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 11:15:39