Python 2.7.9、matplotlib 1.4.0、ipython 2.3.1、macbook pro retina
我在ipython笔记本中使用ipython的interact()和3D绘图,但是发现在更改滑块控件时图形更新太慢。以下是运行时出现此问题的示例代码:
from IPython.html.widgets import *
import numpy as np
from matplotlib import pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
import math
%matplotlib inline
def plt3Dsin(angle):
npnts = 100
rotationangle_radians = math.radians(angle)
tab_x = np.linspace(0,3,npnts)
tab_y = np.zeros(npnts)
tab_z = np.sin(2.0*np.pi*tab_x)
yrotate = tab_z * np.sin(rotationangle_radians)
zrotate = tab_z * np.cos(rotationangle_radians)
fig = plt.figure()
ax = Axes3D(fig)
ax.plot(tab_x, yrotate, zrotate)
ax.set_xlim3d([0.0,3.0])
ax.set_ylim3d([-1.0,1.0])
ax.set_zlim3d([-1.0,1.0])
ax.set_xlabel('x')
ax.set_ylabel('y')
ax.set_zlabel('z')
interact(plt3Dsin,angle=(0,360,5));
在下面的代码中,我试图将图形和轴的创建与实际绘图分开,但是第一次更改滑块时图形不会更新,第二次更改滑块时图形将完全消失。我想我做错了什么,但还不知道是什么。(对于这个简单的示例代码,下面使用全局变量只是一种快速的权宜之计。)
^{pr2}$
tcaswell建议使用nbagg后端的评论为解决我的问题提供了一个很好的方法,因为它使第一个代码块运行得足够快,令人满意。在
相关问题 更多 >
编程相关推荐