脚本中的以下代码按预期工作,
from sympy import *
x = symbols('x')
p = plot(x, x*(1-x), (x, 0, 1))
ax = p._backend.ax[0]
ax.set_yticks((0, .05, .25))
p._backend.fig.savefig('Figure_1.png')
但是当我将上面的代码复制到笔记本单元中时,这就是我得到的
如果在 Jupyter 笔记本中工作时可以操纵 Sympy
plot
的(隐藏)属性,该怎么做?
文档表明下面正在使用matplotlib。使用此方法进行调整的示例位于 “如何更改 sympy 图线型?”的答案中:
“您可以使用 matplotlib magic 和 sympy 绘图对象的 _backend 属性来访问相应 matplotlib 绘图对象的所有属性”
sympy.plotting.plot.plot(*args, show=True, **kwargs)
:plots.show()
由于内联模式的工作方式,该图会在 ax.set_yticks((0, .05, .25))
实施更改之前显示。python v3.12.0
、matplotlib v3.8.1
、sympy v1.11.1
进行测试。from sympy import symbols, plot
import matplotlib.pyplot as plt
x = symbols('x')
# note show=False, the default is True
p = plot(x, x*(1-x), (x, 0, 1), show=False)
fig, ax = plt.subplots()
backend = p.backend(p)
backend.ax = ax
backend._process_series(backend.parent._series, ax, backend.parent)
backend.ax.set_yticks((0, .05, .25))
plt.close(backend.fig)
plt.show()
%matplotlib qt
,代码运行良好。from sympy import symbols, plot
import matplotlib.pyplot as plt
%matplotlib qt # %matplotlib inline - to revert to inline
x = symbols('x')
p = plot(x, x*(1-x), (x, 0, 1))
ax = p._backend.ax[0]
ax.set_yticks((0, .05, .25))