【发布时间】:2011-10-31 02:14:32
【问题描述】:
我有一个 matplotlib 图,我希望能够在 2D 和 3D 投影之间切换。我可以从 2D 转到 3D,但我似乎无法弄清楚如何走另一条路。示例...
import numpy as np
from mpl_toolkits.mplot3d import Axes3D
import matplotlib.pyplot as plt
def randrange(n, vmin, vmax):
return (vmax-vmin)*np.random.rand(n) + vmin
fig = plt.figure()
# Create a 3D scatter plot...
ax = fig.add_subplot(111, projection='3d')
n = 100
for c, m, zl, zh in [('r', 'o', -50, -25), ('b', '^', -30, -5)]:
xs = randrange(n, 23, 32)
ys = randrange(n, 0, 100)
zs = randrange(n, zl, zh)
ax.scatter(xs, ys, zs, c=c, marker=m)
ax.set_xlabel('X Label')
ax.set_ylabel('Y Label')
ax.set_zlabel('Z Label')
# Now I want a 2D plot...
ax.cla()
ax = fig.add_subplot(111)
ax.plot(xs, ys)
plt.show()
情节停留在 3D 投影中,并且 projection="2D" 不是有效的 kwarg...
我想也许 ax.clf() 会做我想做的事,让我定义一个新的数字。但它只是给了我以下错误: ValueError:未知元素o
谁能给我一个关于解决这个问题的提示? ValueError 是与问题相关还是提示我的设置有其他问题?是否有将投影从 3D 切换到 2D 的 kwarg?
非常感谢您提供的任何指针。 丹
【问题讨论】:
标签: python wxpython matplotlib