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')