Python 2.7 Python-使用XY和Z点绘制光栅图像/等高线图

Python 2.7 Python-使用XY和Z点绘制光栅图像/等高线图,python-2.7,matplotlib,raster,Python 2.7,Matplotlib,Raster,我有一组X和Y坐标,每个点都有不同的像素值——Z数量。我想使用光栅图或等高线图绘制这些值 我很难做到这一点,因为像素值与X和Y坐标之间没有数学关系 我已经为x和y值的范围创建了一个数组,并尝试构建一个字典,在这里我可以使用连接的x和y字符串查找z的值。目前我有一个指数问题,我想知道是否有更好的方法来实现这一点 到目前为止,我的代码是: import matplotlib.pyplot as plt import numpy as np XY_Zpoints = {'11':8,

我有一组X和Y坐标,每个点都有不同的像素值——Z数量。我想使用光栅图或等高线图绘制这些值

我很难做到这一点,因为像素值与X和Y坐标之间没有数学关系

我已经为x和y值的范围创建了一个数组,并尝试构建一个字典,在这里我可以使用连接的x和y字符串查找z的值。目前我有一个指数问题,我想知道是否有更好的方法来实现这一点

到目前为止,我的代码是:

import matplotlib.pyplot as plt
import numpy as np

XY_Zpoints = {'11':8,
             '12':8,
             '13':8,
             '14':6,
             '21':6,
             '22':8,      
             '23':6,
             '24':6,
             '31':8,
             '32':3, 
             '33':8,
             '34':6,
             '41':8,
             '42':3, 
             '43':3,
             '44':8,
                   }

x, y = np.meshgrid(np.linspace(1,4,4), np.linspace(1,4,4))

z = XY_Zpoints[str(x)+str(y)]

# Plot the grid
plt.imshow(z)
plt.spectral()
plt.show()

提前感谢您提供的任何帮助

您可以使用numpy数组代替字典,其中每个像素值的位置与x和y坐标对应。在您的示例中,此阵列看起来像:

z = np.array([[8, 8, 8, 6], [6, 8, 6, 6], [8, 3, 8, 6], [8, 3, 3, 8]])
例如,要访问x=2和y=3处的像素值,可以执行以下操作:

x = 2
y = 3
pixel = z[x-1][y - 1]
z可以通过以下方式显示:

imshow(z)

非常感谢你,对不起,我刚才一直在想这个。似乎使用您的方法可以使用像素值定义阵列。如果您有一个精确的值网格,这是一个很好的方法。是否也可以定义一个数组,然后将像素值分配给该数组上的一个位置/点?一个精确的值网格,而不是什么?是否要处理缺少的值?抱歉,忽略我,我只是在想,如果在指定数组中的点之间有一个点,例如2.5,这可能会造成问题,但仔细想想,将网格的分辨率四舍五入或提高会非常容易。再次感谢你的帮助。