【发布时间】: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.plot。sympy.plotting.plot(...)返回一个sympy.plotting.Plot类型的对象,在我的问题正文中,它被称为plot。
标签: matplotlib jupyter-notebook sympy