"Replot" IPython 笔记本中的 matplotlib 内联图
"Replot" a matplotlib inline plot in a IPython notebook
如果我像这样在 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()
没有错误,但也没有绘制图。
我期望得到一个"updated"版本的我的情节和额外的数据。
如何做到这一点?
答:这可以通过更改 matplotlib
渲染器
来实现
目前,无法对 IPython
"inline" 图表执行此操作,但是,如果您选择更改 Renderer
部分matplotlib
框架,对于另一个框架,.show()
方法的单例调用的限制不会造成伤害,您可以 ex post 修改对象的内容,它会被重新处理Renderer
.
简单地说:
添加一个指令(IPythonmagic)%matplotlib qt
&
使用 额外的 matplotlib
呼叫 modify/update figure
对象
(我喜欢在原型制作阶段和复杂数据可视化的交互式 3D 查看中使用它(我在笔记本的“inline”中非常怀念))
顺便说一句:你有什么方法可以将 matplotlib
3D 视图图存储为一个完整的、状态完整的容器,可以发送给一些her/his "load" 和 UI 互动评论的其他用户?很高兴听到任何这样的工作:o)
如果我像这样在 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()
没有错误,但也没有绘制图。
我期望得到一个"updated"版本的我的情节和额外的数据。
如何做到这一点?
答:这可以通过更改 matplotlib
渲染器
来实现
目前,无法对 IPython
"inline" 图表执行此操作,但是,如果您选择更改 Renderer
部分matplotlib
框架,对于另一个框架,.show()
方法的单例调用的限制不会造成伤害,您可以 ex post 修改对象的内容,它会被重新处理Renderer
.
简单地说:
添加一个指令(IPythonmagic)%matplotlib qt
&
使用 额外的 matplotlib
呼叫 modify/update figure
对象
(我喜欢在原型制作阶段和复杂数据可视化的交互式 3D 查看中使用它(我在笔记本的“inline”中非常怀念))
matplotlib
3D 视图图存储为一个完整的、状态完整的容器,可以发送给一些her/his "load" 和 UI 互动评论的其他用户?很高兴听到任何这样的工作:o)