сделать небольшие значения видимыми на цветовой панели Matplotlib в Python - PullRequest
2 голосов
/ 11 декабря 2011

Я использую цветную панель со стандартной картой «jet» и использую ее с «hexbin».В моих ячейках есть значения от 0 до 1500. Проблема в том, что наименьшие значения в некоторых шестиугольных ячейках находятся в диапазоне от 1 до 10, а в некоторых ячейках - сотни.Это означает, что в цветовой карте струй диапазон от 0 до 10 отображается как цвет 0, т. Е. Он неотличим от корзины с 0 отсчетами.Я бы хотел, чтобы эти маленькие значения были видны.Как сделать так, чтобы colormap выполняла что-то вроде: убедитесь, что значения bin, больше или равные N, имеют «видимое» значение, отличное от значения 0 bin, в карте цветов?

спасибо.

Ответы [ 2 ]

2 голосов
/ 11 декабря 2011

Быстрое исправление можно попытаться построить log(counts) вместо счетчиков в гексбине - это расширит масштаб так, что более высокие значения будут сжаты, а более низкие значения - нет.Заметьте, однако, что вам нужно указать где-то, что визуализируемое значение равно log(counts), а не counts, иначе случайный читатель неизбежно неверно интерпретирует график.

Лучшим способом может быть изменение карты цветовчто вы используете.Встроенные карты более или менее изменяют цвет с «0» на цвет «1» линейно.Для того чтобы более низкие значения имели более широкий разброс по цвету, чем более высокие значения, вам нужна нелинейная цветовая карта.

Для этого вы можете попробовать matplotlib.colors, в частности matplotlib.colors.LinearSegmentedColormap.from_list (http://matplotlib.sourceforge.net/api/colors_api.html#matplotlib.colors.LinearSegmentedColormap.from_list)

В основном вы вводите цвета '0' и '1' (например, синий -> красный) и значение гаммы. Наличие гаммы> 1,0 увеличивает чувствительность в нижней части шкалы.

Если не пробовал, но что-то вроде:

import matplotlib.colors as colors
# colourmap from green to red, biased towards the blue end.
# Try out different gammas > 1.0
cmap = colors.LinearSegmentedColormap.from_list('nameofcolormap',['g','r'],gamma=2.0)

# feed cmap into hexbin
hexbin( ...., cmap=cmap )
0 голосов
/ 24 апреля 2014

Кроме того, есть опция mincnt для установки минимального количества в шестнадцатеричном формате, при котором все ячейки с пустым значением меньше этого числа. Это позволяет очень легко различать ноль и единицу в цветовой схеме струи.

hexbin( ...., mincnt=1)
...