【问题标题】:Sympy plotting in the jupyter notebook with inline backend带有内联后端的 jupyter notebook 中的 Sympy 绘图
【发布时间】:2018-08-25 11:43:53
【问题描述】:

我可以修改 plot = sympy.plot(..., show=False) 对象修改 plot 的属性以及稍后调用 plot.show()

如果我需要自定义一些不直接暴露的情节 通过plot,例如,轴标签的大小,我可以访问 我的情节的 Matplotlib 后端,be = plot._backend 有条件 我已经展示了(如plot.show())我的情节。

这在终端 IPython 会话中工作得很好(使用 %matplotlibmagic) 因为图是不断更新的 在脚本中工作(不太好),因为出于各种原因,我 可以,但通常足够好,就是使用savefig 方法 后端的be.fig.savefig(...)

进入木星笔记本。出于性能原因,我更喜欢使用 神奇的%matplotlib inline,所以如果我想访问 Matplotlib 后端我必须在输出单元格中实例化绘图,但稍后 我所做的任何修改都丢失了,因为情节已不复存在 更新了...再次,我能做的就是savefig。如果我尝试做

be.fig.show()

我收到一条错误消息

/home/boffi/lib/miniconda3/lib/python3.6/site-packages/matplotlib/figure.py:459: UserWarning: matplotlib is currently using a non-GUI backend, so cannot show the figure "matplotlib is currently using a non-GUI backend, "

是否可以做我想做的事,即修改 Sympy 在 Jupyter 笔记本中使用其 Matplotlib 后端的绘图和 使用%matplotlib inline 魔法?

【问题讨论】:

  • sympy 没有任何plot 功能。你的意思是sympy.plotting.plot()
  • 我更正了拼写错误 --- 但 sympy 在标签中,不是吗?我想在情节中修改的是,没有被plot 对象暴露,我必须使用plot 后端访问。轴标签的大小是我目前正在抓挠的痒,但我觉得这里的问题更普遍——我可能错了……
  • import sympy 从 Sympy 子模块导入大量名称,sympy.plot is sympy.plotting.plot 的值是 True,是的,我的意思是 sympy.plotting.plotsympy.plotting.plot(...) 返回一个 sympy.plotting.Plot 类型的对象,在我的问题正文中,它被称为 plot

标签: matplotlib jupyter-notebook sympy


【解决方案1】:

sympy 图是 matplotlib 图。 现在它肯定取决于你想做什么。对于大多数 stilistic 适应,您可以在绘图之前设置相应的 rcParams

%matplotlib inline
import matplotlib.pyplot as plt
plt.rcParams["xtick.labelsize"] = 16
plt.rcParams["xtick.color"] = "red"

from sympy import symbols
from sympy.plotting import plot
x = symbols('x')

p = plot(x**2, (x, -5, 5))

此外,确实应该可以在创建图形后修改图形和轴。

fig = p._backend.fig
ax = fig.axes[0]
ax.set_xticks([-4,4])
for i, label in enumerate(ax.get_yticklabels()):
    label.set_rotation(i*15)
    label.set_size(15)
    label.set_color((1.-i/10.,0,i/10.))
fig

值得注意的是,fig.show() 根本不应该在内联后端工作。

【讨论】:

    猜你喜欢
    • 2016-08-05
    • 2018-01-10
    • 2016-06-26
    • 1970-01-01
    • 2017-02-07
    • 2021-11-15
    • 1970-01-01
    • 2017-11-03
    相关资源
    最近更新 更多