脚本中的以下代码按预期工作,

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')

enter image description here

但当我将上面的代码复制到笔记本单元格中时,我得到的是以下代码

enter image description here

如果在Jupyter笔记本上工作时,可以操纵Sympy‘s plot的(隐藏)属性,那该怎么做呢?

推荐答案

  • 按照this answer的重复,在Inline模式下,必须使用p.backend(p).
  • The problem is that 100 creates its own figure and axesplots.show()立即显示绘图.
    • 由于内联模式的工作方式,绘图在ax.set_yticks((0, .05, .25))实施更改之前显示.
  • Tested in 100, 101, 102.
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()

enter image description here

  • 在交互模式%matplotlib qt中,OP中的代码工作正常.
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))

Python相关问答推荐

Python 3.12中的通用[T]类方法隐式类型检索

使用新的类型语法正确注释ParamSecdecorator (3.12)

仿制药的类型铸造

如何使用Python将工作表从一个Excel工作簿复制粘贴到另一个工作簿?

Pandas 滚动最接近的价值

使可滚动框架在tkinter环境中看起来自然

管道冻结和管道卸载

计算组中唯一值的数量

NumPy中条件嵌套for循环的向量化

使用Python和文件进行模糊输出

从列表中获取n个元素,其中list [i][0]== value''

ruamel.yaml dump:如何阻止map标量值被移动到一个新的缩进行?

如何获取Python synsets列表的第一个内容?

基于多个数组的多个条件将值添加到numpy数组

如何在一组行中找到循环?

如何使用大量常量优化代码?

利用SCIPY沿第一轴对数组进行内插

Polars定制函数返回多列

Stats.ttest_ind:提取df值

Python:在cmd中添加参数时的语法