python-将x、y、z值映射到二维曲面数据
我有以下数据集:python-将x、y、z值映射到二维曲面数据,python,arrays,matplotlib,Python,Arrays,Matplotlib,我有以下数据集: x = [50.0, 55.0, 6.6, 35.0, 32.7, 33.2, 14.9, 60.0, 44.0, 38.1] y = [50.0, 25.0, 47.4, 34.9, 56.3, 78.4, 81.9, 73.4, 46.8 ,65.6] z = [0.3, -1.5, 0.1, 1.0, 1.9, -0.1, -0.4, -0.1, 0.3,
x = [50.0, 55.0, 6.6, 35.0, 32.7, 33.2, 14.9, 60.0, 44.0, 38.1]
y = [50.0, 25.0, 47.4, 34.9, 56.3, 78.4, 81.9, 73.4, 46.8 ,65.6]
z = [0.3, -1.5, 0.1, 1.0, 1.9, -0.1, -0.4, -0.1, 0.3, -0.0]
x和y是采样数据点在二维曲面上的位置。
z是该位置的数据样本值
基本上我想要这样的东西:
但是,如您所见,z值尚未映射到二维栅格格式
这不是我想要的:
x = np.arange(-5, 5, 0.1)
y = np.arange(-5, 5, 0.1)
xx, yy = np.meshgrid(x, y, sparse=True)
z = np.sin(xx**2 + yy**2) / (xx**2 + yy**2)
我在网上找到的所有例子都是假设一些等高线图来计算z矩阵的,但我不是这样。在我的例子中,z是1D数组,包含样本位置处岩石的黄金百分比,x和y代表该样本的位置
如何将z阵列转换为2D矩阵,以说明样本的位置
最后,我想使用2D变换的_z矩阵绘制散点图
IIUC您只需要将z中的值绘制为带有X和yas坐标的彩色编码散点图 您不需要为此转换z,这完全可以通过给定的三个数组来完成:
import matplotlib.pyplot as plt
x = [50.0, 55.0, 6.6, 35.0, 32.7, 33.2, 14.9, 60.0, 44.0, 38.1]
y = [50.0, 25.0, 47.4, 34.9, 56.3, 78.4, 81.9, 73.4, 46.8 ,65.6]
z = [0.3, -1.5, 0.1, 1.0, 1.9, -0.1, -0.4, -0.1, 0.3, -0.0]
plt.figure()
plt.scatter(x, y, c=z, cmap='Wistia')
cb = plt.colorbar()
cb.set_label('gold percentage of a rock (%)')
plt.xlabel('X')
plt.ylabel('Y')
for xt, yt, zt in zip(x, y, z):
plt.text(xt, yt+1, str(zt), ha='center')
我将这些值添加为文本,以便与数组进行更快的比较
import matplotlib.pyplot as plt
x = [50.0, 55.0, 6.6, 35.0, 32.7, 33.2, 14.9, 60.0, 44.0, 38.1]
y = [50.0, 25.0, 47.4, 34.9, 56.3, 78.4, 81.9, 73.4, 46.8 ,65.6]
z = [0.3, -1.5, 0.1, 1.0, 1.9, -0.1, -0.4, -0.1, 0.3, -0.0]
plt.figure()
plt.scatter(x, y, c=z, cmap='Wistia')
cb = plt.colorbar()
cb.set_label('gold percentage of a rock (%)')
plt.xlabel('X')
plt.ylabel('Y')
for xt, yt, zt in zip(x, y, z):
plt.text(xt, yt+1, str(zt), ha='center')