Python

Heatmaps и Colorbars в Matplotlib

Heatmaps и Colorbars в Matplotlib
Визуализирането на данни е една от най-важните стъпки в науката за данни (или която и да е друга наука, в този смисъл). Ние като хора сме бедни в осмислянето на редове и редове от числа. Ето защо винаги е полезно да има програма като Matplotlib, която да ни помогне да развием визуална интуиция за това какво се случва, когато, да речем, алгоритъм за машинно обучение класифицира огромни количества данни.

Докато графиките, показващи връзката между две променливи като височина и тегло, могат лесно да бъдат нанесени на плосък екран, както е показано по-долу, нещата стават наистина объркани, когато имаме повече от два параметъра.

Тогава хората се опитват да преминат към триизмерни парцели, но те често са объркващи и тромави, което поражда цялата цел на визуализацията на данните. Нуждаем се от топлинни карти за визуални изображения.

Какво представляват топлинните карти?

Ако погледнете изображението от термокамера, можете да видите буквална топлинна карта. Камерата за термоизображение представя различна температура като различни цветове. Схемата за оцветяване привлича нашата интуиция, че червеното е „топъл цвят“ и приема синьо и черно, за да представлява студени повърхности.

Този изглед на Марс е наистина добър пример, когато студените райони са със син цвят, докато по-топлите райони са предимно червени и жълти. Цветната лента на изображението показва какъв цвят представлява каква температура.

Използвайки matplotlib, можем да свържем точка (x, y) на графиката със специфичен цвят, представляващ променливата, която се опитваме да визуализираме. Не е необходимо да е температура, може да е всяка друга променлива. Ще покажем и цветна лента до него, за да посочи на потребителите какво означават различни цветове.

Често пъти можете да видите хора, които споменават цветови карти вместо топлинни карти. Те често се използват взаимозаменяемо. Colormap е по-общ термин.

Инсталиране и импортиране на Matplotlib и свързани пакети

За да започнете с Matplotlib, уверете се, че имате инсталиран Python (за предпочитане Python 3 и pip). Вие също ще имате нужда numpy, скучен и панди за работа с набори от данни. Тъй като ще начертаем проста функция, само два от пакетите numpy и matplotlib ще са необходими.

$ pip инсталирайте matplotlib numpy
#или ако сте инсталирали и два, и три питона
$ pip3 инсталиране на matplotlib numpy

След като инсталирате библиотеките, трябва да се уверите, че те са импортирани във вашата програма python.

импортиране на numpy като np
импортиране на matplotlib.pyplot като plt

Сега можете да използвате функциите, предоставени от тези библиотеки, като използвате синтаксис като np.numpy функция ()и  plt.друга функция ().

Няколко примера

Нека започнем с начертаване на проста математическа функция, която взема точки на равнина (техните координати x и y) и им присвоява стойност. На екрана по-долу е показана функцията заедно със сюжета.

Различните цветове представляват различни стойности (както е показано от скалата до графика). Нека разгледаме кода, който може да се използва за генериране на това.

импортиране на numpy като np
импортиране на matplotlib.pyplot като plt
 
# Математическа функция, която трябва да начертаем
def z_func (x, y):
return (1 - (x ** 2 + y ** 3)) * np.exp (- (x ** 2 + y ** 2) / 2)
# Настройка на входни стойности
x = np.подреждане (-3.0, 3.0, 0.1)
y = np.подреждане (-3.0, 3.0, 0.1)
X, Y = np.мрежова мрежа (x, y)
 
# Изчисляване на изхода и съхраняването му в масива Z
Z = z_func (X, Y)
 
im = plt.imshow (Z, cmap = plt.см.RdBu, екстент = (- 3, 3, 3, -3), интерполация = "билинейна")
 
plt.цветна лента (im);
 
plt.заглавие ('$ z = (1-x ^ 2 + y ^ 3) e ^ - (x ^ 2 + y ^ 2) / 2 $')
 
plt.покажи ()

Първото нещо, което трябва да забележите, е, че внасяме само matplotlib.pyplot малка част от цялата библиотека. Тъй като проектът е доста стар, той има много неща, натрупани през годините. Например matplotlib.pyplot беше популярен по онова време, но сега е само историческа реликва и импортирането му просто добавя повече подуване към вашата програма.

След това дефинираме математическата функция, която искаме да начертаем. Отнема две стойности (x, y) и връща третата стойност z. Определихме функцията, която все още не я използва.

Следващият раздел поема задачата да създаде масив от входни стойности, ние използваме numpy за това, въпреки че можете да използвате изграждането в обхват () функция за него, ако искате. След като се изготви списъкът със стойностите x и y (вариращи от отрицателни 3 до 3), ние изчисляваме стойността на z от него.

След като сме изчислили нашите входове и изходи, можем да начертаем резултатите. The plt.imshow () казва на python, че изображението ще се отнася до Z, което е нашата изходна променлива. Той също така казва, че ще бъде цветова карта, cmap, с червено синьо (RdBu) Скала, простираща се от -3 до 3 по всяка ос. The интерполация параметър прави графиката по-гладка, изкуствено. В противен случай изображението ви би изглеждало доста пикселирано и грубо.

В този момент графиката се създава, просто не се отпечатва. След това добавяме цветната лента отстрани, за да помогнем за корелация на различни стойности на Z с различни цветове и споменаваме уравнението в заглавието. Те се правят на стъпки plt.цветна лента (im) и plt.заглавие(… ). И накрая, извикването на функцията ни показва графиката на екрана.

Многократна употреба

Можете да използвате горната структура, за да начертаете всяка друга 2D цветова карта. Не е нужно дори да се придържате към математическите функции. Ако имате огромни масиви от данни във вашата файлова система, може би информация за определени демографски данни или други статистически данни, можете да ги включите, като промените X, Y стойности без промяна на раздела на цветовата карта.

Надявам се, че тази статия ви е била полезна и ако харесвате подобно съдържание, уведомете ни.

Как да разработите игра на Linux
Преди десетилетие не много потребители на Linux биха прогнозирали, че любимата им операционна система един ден ще бъде популярна игрална платформа за ...
Пристанища с отворен код на търговски игрални машини
Безплатни разширения на играта с отворен код и междуплатформени игри могат да се използват за възпроизвеждане на стари, както и някои от доста скорошн...
Най-добрите игри за команден ред за Linux
Командният ред не е само най-големият ви съюзник при използване на Linux - той може да бъде и източник на забавление, защото можете да го използвате, ...