Возможно ли определить цветовой палитру matplitlib, которая логарифмически интерполируется между двумя заданными цветами?Логарифмическая цветовая палитра в matplotlib
фон: При построении массивов в Matplotlib с помощью команды imshow(...)
, цветовых карт используются, чтобы назначить цвет каждого значение данных. Часто предопределенные цветовые карты используются от matplotlib.cm
, но также могут быть созданы более расширенные цветовые карты с использованием matplotlib.colors.LinearSegmentedColormap
. Как правило, в этих цветовых картах значение цвета линейно изменяется со значением данных.
Подсказка: Мой вопрос не, как построить массив логарифмически. Обычно это делается путем сохранения линейной цветовой схемы и некоторых трюков (либо путем построения графика log(array)
и замены меток x
на цветной панели на 10^x
, либо путем явного изменения поведения нормализации команды plot). Здесь я явно нуждаюсь в экземпляре colormap.
Так что 'imshow (data, norm = matplotlib.colors.LogNorm())' не то, что вы ищете? Это делает то, что вы описываете в своем намеке. Это то, что вы хотите построить массив логарифмически, но имеет ли линейный график colorbar? – burnpanck
@burnpanck нет, вот что я делаю * не * хочу, мне нужен автономный экземпляр colormap, который работает логарифмически. Причина в том, что я использую другое программное обеспечение, которое создает графики с использованием matplotlib colormaps. – flonk
Хорошо, какое программное обеспечение, каким образом вы передаете ему цветовой код? Причина в том, что довольно легко написать собственный подкласс класса «Colormap», который просто обертывает другой цветовой код, применяя преобразование линейного преобразования в журнал. Однако неясно, можно ли передать такой пользовательский класс. – burnpanck