Chr*_*apu 9 matplotlib ipython jupyter jupyter-notebook
我使用matplotlib.pyplot的IPython笔记本,我经常创建一个需要相当大的代码块来生成的图.然后我想保存对象,并使用完全相同的图/轴对,以便稍后合并到另一个图中.
例如,假设我有一些散点图的xy数据对.我想稍后显示点数,然后是几个单元格 - 可能还有其他调用pyplot来制作其他不相关的数字 - 我想再次显示这个数字,以便我可以用回归线或某些数据绘制它其他图形.
在下面我附上的图片中,我有一个简短的笔记本; 我希望单元格#2中的数字在单元格#3中绘制而不再调用pyplot.scatter.
基本上,我想再次显示图形而不重复所有代码.这样做有什么选择?我无法通过调用show()或draw()或通过将单元格中的当前图形对象设置为我保存的图形对象来完成此操作.欢迎任何建议.谢谢!
PS我知道如果我重复使用图形并在其上绘图,对象将会改变,因此无花果对象的状态可能与先前IPython单元格中绘制的绘图不匹配.这对我的工作没问题.
Pri*_*mer 13
只需myFigure在myFigure之前在单元格中分配后调用任何单元格.
例如在单元格1中:
In [1]:
myFigure, myAx = plt.subplots()
myAx.plot([1,2,3])
Run Code Online (Sandbox Code Playgroud)
在那之后:
In [2]:
myFigure
Run Code Online (Sandbox Code Playgroud)
这将显示 myFigure
假设您%matplotlib inline在 Jupyter Notebook 中使用默认的 matplotlib 后端 ( )。
然后,要在笔记本中显示绘图,您必须显示该图形。有 3 种方法可以做到这一点。
当单元格完成运行时,任何刚刚创建的非闭合图(另请参阅此答案以了解如何闭合图)将自动显示。当您运行第一个单元格时会发生这种情况。
将fig(matplotlib.figure.Figure实例)放在任何单元格的末尾。
其他现有答案中已经提到了此方法,但请注意它必须位于最后一行,并且不得有尾随;. (这对于每种对象类型都是相同的。如果您执行包含内容的单元格,1它将显示1在输出中,但1;不会显示任何内容)
请注意,这print(fig)不起作用,因为这只会将图形的字符串表示形式发送到(因此笔记本中会显示sys.stdout类似的内容)。<Figure>
| 归档时间: |
|
| 查看次数: |
1898 次 |
| 最近记录: |