我试图在3D中绘制错误椭圆形。当然,这并不是那么难,但是我发现了对撞车者的麻烦。我使用的colormap使用Z值的颜色。我希望这描述了椭球上的点与另一个(简单使用中心)点之间的距离之间的关系。
现在,碰撞器从底部变为顶部,但我希望这也是由于不同轴的变化而具有水平变化。
有没有办法操纵colormap,因此它显示距离而不是值z?
我认为也许可以与Z相同的网格,但它不是z点,而是计算距离。是否可以为colormap而不是默认Z使用另一个2D数组?
感谢您的帮助
我找到了答案。以下代码生成Ellispoid及其距离:
from mpl_toolkits.mplot3d import Axes3D
import matplotlib.pyplot as plt
import numpy as np
from matplotlib import cm
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
u = np.linspace(0, 2 * np.pi, 100)
v = np.linspace(0, np.pi, 100)
x = 0.5 * np.outer(np.cos(u), np.sin(v))
y = 0.1 * np.outer(np.sin(u), np.sin(v))
z = 0.2 * np.outer(1, np.cos(v))
T = (x**2+y**2+z**2)**(1/2)
ax.plot_surface(x, y, z, rstride=1, cstride=1, facecolors=cm.jet(T/float(T.max())))
#a = [max(x), max(y), max(z)]
ax.set_xlim([-0.3, 0.3])
ax.set_ylim([-0.3, 0.3])
ax.set_zlim([-0.3, 0.3])
plt.show()
诀窍是使用面孔将彩色表面设置为另一个数据集。答案在这里找到:使用colormaps代表Mplot 3D中的4D数据
也许还有其他人有同样的问题,所以这就是我发布自己的anwser的原因。