“重新绘制”一个IPython笔记本中的matplotlib内联图

时间:2015-06-07 10:51:06

标签: python matplotlib ipython visualization scientific-computing

如果我在ipython笔记本中处理matplotlib 内联图,请执行以下操作:

figure = plt.figure()
ax = figure.gca(projection="3d")
graph = np.empty([len(thetaYield),3])
for g, tY in zip(graph, thetaYield):
    sample =  HWtoPS(xiYield, rhoYield, tY)
    g[...] = sample[:]
ax.plot(graph[:,0],graph[:,1], graph[:,2])
plt.show()

情节按照预期在我的笔记本中内嵌绘制。

现在我想添加一些数据到这个图:

principalStress, vectors = eig(sigma)
ax.scatter(principalStress[0], principalStress[1], principalStress[2])
plt.show()

没有错误,但没有绘制情节

预期使用其他数据获取我的情节的“更新”版本。

如何做到这一点?

1 个答案:

答案 0 :(得分:1)

答:这可以以更改matplotlib渲染器

的代价完成

目前,IPython"内联"无法做到这一点。但是,如果您选择将Renderer }框架的 matplotlib 部分更改为另一个,则限制了.show()方法的单例调用没有伤害,您可以事后修改对象的内容,并由Renderer重新处理。

简单地:

添加指令(IPython 魔术 %matplotlib qt

&安培;

使用其他matplotlib来电,因为您希望修改/更新 figure 对象

(我喜欢在原型设计阶段和复杂数据可视化的交互式3D观看中使用它(我在笔记本中非常想念" inline " s)) 3D-view by matplotlib BTW :您是否有任何方法可以将matplotlib 3D视图图存储为完整的状态填充容器,可以将其发送给其他用户她/他"加载"和UI互动审查?很高兴听到任何这样的工作:o)