it-swarm.com.ru

Как преобразовать значения данных в информацию о цвете для matplotlib?

Я использую класс matplotlib.patches.Polygon для рисования полигонов на карте. На самом деле, информация о координатах углов многоугольников и значение данных с плавающей запятой для каждого «многоугольника» приведены . Теперь я хотел бы преобразовать эти значения данных (в диапазоне от 0 до 3e15) в цвет информация, чтобы визуализировать это красиво. Какова лучшая практика для этого в Python?

Фрагмент моего кода:

poly = Polygon( xy, facecolor=data, edgecolor='none')
plt.gca().add_patch(poly)
14
HyperCube

В системе цветов RGB для каждого цвета используются два бита данных: красный, зеленый и синий. Это означает, что каждый цвет работает по шкале от 0 до 255. Черный будет 00,00,00, а белый - 255 255 255. Matplotlib предлагает множество предопределенных цветовых карт. Все они нормализованы до 255, поэтому они работают от 0 до 1. Таким образом, вам нужно только нормализовать ваши данные, затем вы можете вручную выбрать цвета из цветовой карты следующим образом:

>>> import matplotlib.pyplot as plt

>>> Blues = plt.get_cmap('Blues')
>>> print Blues(0)
(0.9686274528503418, 0.9843137264251709, 1.0, 1.0)
>>> print Blues(0.5)
(0.41708574119736169, 0.68063054575639614, 0.83823145908467911, 1.0)
>>> print Blues(1.0)
(0.96555171293370867, 0.9823452528785257, 0.9990157632266774, 1.0)

Вот все предопределенные цветовые карты. Если вы заинтересованы в создании собственных цветовых карт, здесь является хорошим примером. Также здесь это документ от IBM по тщательному выбору цветов, что следует учитывать, если вы используете цвет для визуализации данных.

23
Mr. Squig

Чтобы преобразовать значение, которое идет от 0 до + бесконечности, к значению, которое идет от 0,0 до 1,0

import matplotlib.pyplot as plt

price_change =  price_change ** 2 / (1 + price_change ** 2)
Blues = plt.get_cmap('Blues')
print Blues(price_change)

Полный список цветовых карт находится здесь: http://matplotlib.org/users/colormaps.html

3
Davoud Taghawi-Nejad

Я думаю, что вы ищете, это ColorMap. См. Следующий пост для получения информации об использовании предоставленных matplotlib.

Использование Colormaps для установки цвета линии в matplotlib

Если вы хотите сделать свой собственный, приведенная ниже страница предоставляет хороший пример.

http://code.activestate.com/recipes/52273-colormap-returns-an-rgb-Tuple-on-a-0-to-255-scale-/

1
juniper-