【发布时间】:2012-10-30 14:47:01
【问题描述】:
我是 python 新手,安装它后,我已经完成了使用 matplotlib 绘制我的 3d 数据。可悲的是,我唯一不知道如何完成的是颜色部分。我的图像只显示表面,但根本不使用彩条。这是我的代码。
from mpl_toolkits.mplot3d import Axes3D
from matplotlib import cm
from matplotlib.ticker import LinearLocator, FormatStrFormatter
import matplotlib.pyplot as plt
from matplotlib.mlab import griddata
import numpy as np
fig = plt.figure()
ax = fig.gca(projection='3d')
data = np.genfromtxt('Uizq.txt')
x = data[:,0]
y = data[:,1]
z = data[:,2]
xi = np.linspace(min(x), max(x))
yi = np.linspace(min(y), max(y))
ax.set_xlabel('X')
ax.set_ylabel('Y')
ax.set_zlabel('U')
X, Y = np.meshgrid(xi, yi)
Z = griddata(x, y, z, xi, yi)
ax.set_zlim3d(np.min(Z), np.max(Z))
surf = ax.plot_surface(X, Y, Z, rstride=2, cstride=2, cmap=cm.jet,
linewidth=0.5, antialiased=False)
fig.colorbar(surf, shrink=0.5, aspect=5)
plt.show()
您显然可以看到它全是蓝色,我想使用完整的cm.jet 光谱将颜色与“U”相关联。这可能是一个非常菜鸟的问题,如果你翻白眼,很抱歉。
【问题讨论】:
-
这里的代码matplotlib.org/mpl_toolkits/mplot3d/tutorial.html 是否产生了您期望的结果?你能提供你使用的数据文件吗? (这些问题是为了弄清楚这是否是由于您的数据中的某些东西弄乱了颜色图)您使用的是什么版本的 matplotlib?
-
这就是我要找的,“表面图”下面的第一个。这是我的数据s000.tinyupload.com/?file_id=14963344006410044490。我正在使用最后一个版本,1.1.1。
标签: python colors matplotlib