Одна вещь, которую вы можете сделать, это изменить то, что вы положили в imshow. Первая переменная может быть значениями в градациях серого, которые вы использовали, или значениями RGB или RGBA. Если вы используете значения RGB / RGBA, то карта игнорируется. Так, например,
imshow(Z1, cmap=cm.hsv, alpha=.6, extent=extent)
сгенерирует то же изображение, что и
imshow(cm.hsv(Z1), alpha=.6, extent=extent)
потому что cm.hsv()
просто возвращает значения RGBA. Если вы посмотрите на значения, которые он возвращает, все они имеют 1.0 как значение A (прозрачность). Таким образом, один из способов сделать переменную прозрачность такой:
def mycmap(x):
tmp = cm.hsv(x)
for i in xrange(tmp.shape[0]):
for j in xrange(tmp.shape[0]):
tmp[i,j][3] = somefunction of x[i,j] that generates the transparency
return tmp
imshow(mycmap(Z1), extent=extent)
imshow(mycmap(Z2), extent=extent)
Возможно, вы найдете немного более элегантный способ сделать это, но, надеюсь, вы поняли идею.