Вы можете сделать это с помощью pcolormesh
и затем установить alpha
для граней QuadMesh
. Например:
import numpy as np
import matplotlib.pyplot as plt
fig,ax = plt.subplots(1)
ax.set_aspect('equal')
# The data array
m1 = np.random.rand(5,5)
# The alpha array. Normalize your map2 to the range 0,1
m2 = np.linspace(0,1,25).reshape(5,5)
p = ax.pcolormesh(m1)
plt.savefig('myfig.png') # or fig.canvas.draw()
for i,j in zip(p.get_facecolors(),m2.flatten()):
i[3] = j # Set the alpha value of the RGBA tuple using m2
plt.savefig('myfig.png')
Примечание: вам кажется, вам нужно сохранить фигуру (или plt.show()
или fig.canvas.draw()
) после команды pcolormesh, чтобы сгенерировать массив p.get_facecolors
; вот почему я дважды сохраняю фигуру. Возможно, это более элегантное решение, но я не могу думать об этом с головы. Вот результат; обратите внимание на увеличение alpha
от нижнего левого угла к верхнему праву: