Я ищу для построения matplotlib colormesh поверх другого colormesh. Нижний график - это просто оттенки серого.Дискретизированная цветовая карта с прозрачностью в Matplotlib
Тот, который сидит сверху, должен, однако, нарисовать прозрачный квадрат, когда значение переданного массива равно 0, и другой цвет для каждого другого числа в переданном массиве. Это 2d массивы numpy.
В настоящее время у меня есть:
plt.pcolormesh(array1, vmin = -32, vmax = 32, cmap = plt.cm.binary)
plt.pcolormesh(array2, cmap = plt.cm.spectral)
Очевидно, что это не дает то, что я ищу, и я предполагаю, что способ сделать это, чтобы сформировать свою собственную палитру, я прочитал это руководство: http://wiki.scipy.org/Cookbook/Matplotlib/ColormapTransformations, но это не похоже на прозрачность, а также на то, как сделать конкретные значения привязаны к определенным цветам.
В короткий пример того, что я хотел бы, массив:
[[0, 1]
[2, 3]]
Если производить сетку выглядит как:
[[transparent, red
[green, yellow]]
Как я могу идти об этом? Объединение массивов вместе не является вариантом, так как нижний набор данных представляет собой карту высот, и значения этого, вероятно, всегда будут охватывать значения второго массива (это идентификаторы агентов).
Это хорошо, и близко к тому, что я имел в виду, но не совсем там. Возможно ли применять альфа-канал ТОЛЬКО к тем значениям 0? Если нет, я думаю, мне, возможно, придется искать другой способ построения этих данных. –
Да, используя маскированные массивы, это сделает. Отредактировано мое сообщение, чтобы продемонстрировать. – dabillox
Блестящий, спасибо. Чтобы увеличить количество используемых цветов, я просто изменяю параметр n в truncate_colormap? - Кажется, это связано с предоставленной ссылкой. –