如何绘制例如的x-y网格用从数组读取的颜色平方

| 我有x和y坐标的单独数组,以及对应值的z数组。我希望制作一个在每个x和y坐标上都有正方形的图,该图具有从z数组设置的颜色-与此类似。我已经在Google上进行了艰苦的搜索,以找到我该怎么做,但无济于事。 matplotlib.pyplot.scatter函数需要从0-1缩放的颜色数组,所以我看不到在这种情况下该如何使用。任何帮助深表感谢。
已邀请:
谢谢安德鲁。我现在知道如何运作。问题是我的z数组只是一列数字。由于它们的排列顺序不合理,因此仅使用pcolor将数组重新整形为2D会很困难。 我想出了一个更好的解决方案,使用for循环将矩形色块附加到色块集合中,然后将颜色映射分配给整个色块和图。
import numpy as np
import matplotlib
import matplotlib.pyplot as plt
from matplotlib.collections import PatchCollection
import matplotlib.patches as mpatches

fig = plt.figure(figsize=(9,5))
ax = plt.axes([0.1,0.1,0.7,0.7])
cmap = matplotlib.cm.jet
patches = []

data=np.array([4.5,8.6,2.4,9.6,11.3])
data_id_nos=np.array([5,6,9,8,7])
x_coords=np.array([3.12,2.6,2.08,1.56,1.04])
y_coords=np.array([6.76,6.24,5.72,5.20,4.68])
coord_id_nos=np.array([7,9,6,5,8])    

for i in range(len(data_id_nos)):
        coords=(x_coords[np.where(coord_id_nos == data_id_nos[i])],y_coords[np.where(coord_id_nos == data_id_nos[i])])
        art = mpatches.Rectangle(coords,0.50,0.50,ec=\"none\")
        patches.append(art)

#create collection of patches for IFU position
IFU1 = PatchCollection(patches, cmap=cmap)
#set the colours = data values
IFU1.set_array(np.array(data))
ax.add_collection(IFU1)
plt.axis(\'scaled\')
plt.xlabel(\'x (arcsecs)\')
plt.ylabel(\'y (arcsecs)\')
我想您要的是1英镑,如下所示。
你需要做这样的事情
x = np.arange(10)
y = np.arange(10)
z = np.zeros([10,10])
z[1,5] = 10
z[2,7] = 20
z[3,9] = 30
pcolor(x,y,z)
有了这个精确的代码,最后一点将偏离轴,但这应该可以给您带来灵感。

要回复问题请先登录注册