首页 > 解决方案 > 带有符号刻度标签的绘图

问题描述

我想绘制为某些数值保留符号意义的图。

isympy外壳中我可以写:

T = Symbol('T')

plot(exp(x/T).subs(T, 5))

这给出了以下情节

在此处输入图像描述

我不太关心图中的数字刻度标签。我感兴趣的是 x 轴等于T=5y 轴应该等于的位置e=2.718。换句话说,我想丢弃两个轴上的所有刻度标签,并且在 x 轴上只有一个刻度标签 for T,在 y 轴上只有一个标签 for e

这样的事情可能吗?

标签: sympy

解决方案


根据Sympy 和 plotting,您可以通过访问自定义 sympy 绘图._backend.ax。在我当前的版本中,我需要._backend.ax[0].

以下是您的情节可以如何调整:

from sympy import Symbol, plot, exp

t_val = 5
T = Symbol('T')
plot1 = plot(exp(x / T).subs(T, t_val))
fig = plot1._backend.fig
ax = plot1._backend.ax[0]
ax.set_xticks([t_val])
ax.set_xticklabels([str(T)])
e_val = exp(1).evalf()
ax.set_yticks([e_val])
ax.set_yticklabels(["e"]) # or ax.set_yticklabels([f"{e_val:.3f}"]) ?
ax.plot([t_val, t_val, 0], [0, e_val, e_val], color='dodgerblue', ls='--')
fig.canvas.draw()

自定义同情情节


推荐阅读