Спасибо, Андрей.Я вижу, как это работает сейчас.Дело в том, что мой z-массив - это всего лишь один столбец чисел.Поскольку они расположены не в каком-либо разумном порядке, было бы трудно просто переформировать массив в 2D, чтобы использовать pcolor.
Я придумал гораздо лучшее решение, использующее цикл 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)')