我需要在文件中创建一个图形而不在IPython笔记本中显示它.我不是之间的相互作用明确IPython
,并matplotlib.pylab
在这方面.但是,当我调用pylab.savefig("test.png")
当前数字时,除了保存之外,还会显示test.png
.当自动创建大量绘图文件时,这通常是不合需要的.或者在需要由另一个应用程序进行外部处理的中间文件的情况下.
不确定这是笔记本matplotlib
还是IPython
笔记本问题.
我想使用Matplotlib和pyplot生成一个svg图像,用于Django框架.到目前为止,我有它生成链接到页面的图像文件,但有没有办法直接获取svg图像作为unicode字符串,而无需写入文件系统?
我使用matplotlib.pyplot的IPython笔记本,我经常创建一个需要相当大的代码块来生成的图.然后我想保存对象,并使用完全相同的图/轴对,以便稍后合并到另一个图中.
例如,假设我有一些散点图的xy数据对.我想稍后显示点数,然后是几个单元格 - 可能还有其他调用pyplot来制作其他不相关的数字 - 我想再次显示这个数字,以便我可以用回归线或某些数据绘制它其他图形.
在下面我附上的图片中,我有一个简短的笔记本; 我希望单元格#2中的数字在单元格#3中绘制而不再调用pyplot.scatter.
基本上,我想再次显示图形而不重复所有代码.这样做有什么选择?我无法通过调用show()或draw()或通过将单元格中的当前图形对象设置为我保存的图形对象来完成此操作.欢迎任何建议.谢谢!
PS我知道如果我重复使用图形并在其上绘图,对象将会改变,因此无花果对象的状态可能与先前IPython单元格中绘制的绘图不匹配.这对我的工作没问题.
我正在调用IPython Notebook的内联模式;
%pylab inline
Run Code Online (Sandbox Code Playgroud)
以下代码立即在单元格中绘制一个数字;
fig = plt.figure()
axes = fig.add_axes([0, 0, 1, 1])
Run Code Online (Sandbox Code Playgroud)
但是我想在一个单元格中创建绘图/轴等,稍后使用也可以绘制;
fig.show()
Run Code Online (Sandbox Code Playgroud)
如何获得对内联模式的更多控制?如果我不使用%pylab inline,它会在一个我不想要的单独窗口中创建绘图(并且它通常会冻结窗口).
版本;
Numpy: 1.7.0
Matplotlib: 1.2.1rc1
Python: 2.7.2 (default, Jun 24 2011, 12:22:14) [MSC v.1500 64 bit (AMD64)]
Pandas: 0.10.1
PyLab: 1.7.0
Run Code Online (Sandbox Code Playgroud) 我正在查看matplotlib python inline on / off,这种解决方法可以解决问题,但是当我执行plt.ion()
所有操作时,所有图都会弹出(上百个图)。我想将它们抑制在一个单元格中。有没有with
可以用来关闭的循环,%matplotlib inline
或者这是不可能的吗?
我正在使用 jupyter 和 jupyter lab 来分析数据。
在显示图表的情况下,我想显示最后一个单元格中的所有图表。
但是 jupyter 和 jupyter lab 在设置绘图代码后立即显示图形,例如
plt.scatter(regdata[0],regdata[1])
Run Code Online (Sandbox Code Playgroud)
我想要做的是在上面的不同单元格中设置绘图并在最后一个单元格中显示。
matplotlib ×5
python ×3
ipython ×2
jupyter ×2
django ×1
inline ×1
jupyter-lab ×1
python-2.7 ×1
svg ×1