Разширена визуализация за учени с данни с Matplotlib

Съдържание: Основни сюжети, 3D графики и джунджурии

Една картина струва хиляда думи, но добрата визуализация струва милиони.

Визуализацията играе основна роля в комуникацията на резултатите в много области в днешния свят. Без правилни визуализации е много трудно да се разкрият констатациите, да се разберат сложни връзки между променливите и да се опишат тенденциите в данните.

В тази публикация в блога ще започнем с начертаването на основните сюжети с Matplotlib и след това ще разгледаме някои много полезни съвременни техники за визуализация, като „The mplot3d Toolkit“ (за генериране на 3D графики) и джаджи.

Наборът от данни за данъка върху данъка върху имотите във Ванкувър е използван за изследване на различни видове парцели в библиотеката Matplotlib. Наборът от данни съдържа информация за имоти от BC Assessment (BCA) и източници на града, включително Идентификационен номер на имота, Година на построяване, Категория на зоните, Текуща стойност на земята и т.н.

В края на този блог се споменава връзка към кодовете.

Matplotlib Основни парцели

Често използвани команди в дадените примери:

plt.figure (): За да създадете нова фигура
plt.plot (): Начертайте y срещу x като линии и / или маркери
plt.xlabel (): Задайте етикета за x-os
plt.ylabel (): Задайте етикета за y-оста
plt.title (): Задайте заглавие на осите
plt.grid (): Конфигуриране на линиите на мрежата
plt.legend (): Поставете легенда върху осите
plt.savefig (): За да запазите текущата цифра на диска
plt.show (): Показване на фигура
plt.clf (): Изчистване на текущата цифра (полезно за нанасяне на няколко фигури в един и същ код)

1. Линия на парцела

Графикът на линията е основна диаграма, която показва информация като поредица от точки на данни, наречени маркери, свързани чрез сегменти с права линия.

Горният фрагмент на код може да се използва за създаване на линейна графика. Тук Pandas Dataframe е използван за извършване на основни манипулации с данни. След като прочете и обработи входния набор от данни, plt.plot () се използва за начертаване на линейната графика с Year на x-оста и Броят на свойствата, изградени на y-оста.

2. Бар парцел

Лентова графика показва категорични данни с правоъгълни ленти с височина или дължина, пропорционални на стойностите, които представляват.

Горният фрагмент на код може да се използва за създаване на графична лента.

3. Хистограма

Хистограмата е точно представяне на разпределението на числовите данни. Това е оценка на вероятностното разпределение на непрекъсната променлива.

Горният фрагмент на код може да се използва за създаване на хистограма.

4. Пай диаграма

Диаграма с пай е кръгла статистическа графика, която е разделена на филийки, за да илюстрира числови пропорции. В кругова диаграма дължината на дъгата на всеки резен е пропорционална на количеството, което представлява.

Горният фрагмент на код може да се използва за създаване на диаграма на пай.

5. Разпръскващ парцел

Горният фрагмент на код може да се използва за създаване на Scatter сюжет.

6. Работа с изображения

Линк за изтегляне на тестовото изображение на Lenna. (Източник: Уикипедия)

3D парцели, използващи Matplotlib

3D графиките играят важна роля за визуализиране на сложни данни в три или повече измерения.

1. 3D скатер

3D диаграмите на разсейване се използват за нанасяне на точки от данни на три оси в опит да се покаже връзката между три променливи. Всеки ред в таблицата с данни е представен от маркер, чието положение зависи от стойностите му в колоните, зададени на осите X, Y и Z.

2. 3D линия

3D линии може да се използва в случаите, когато имаме една променлива, която постоянно се увеличава или намалява. Тази променлива може да бъде поставена на оста Z, докато промяната на другите две променливи може да се наблюдава в X-ос и Y-ос w.r.t Z-ос. Например, ако използваме данни от времеви редове (като планетни движения), времето може да бъде поставено на оста Z и промяната в другите две променливи може да се наблюдава от визуализацията.

3. 3D сюжети като подпланове

Горният фрагмент на код може да се използва за създаване на множество 3D графики като подпланове в една и съща фигура. И двата участъка могат да бъдат анализирани независимо.

4. Контурно парцел

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

5. Контурно парцел с интензивност

Горният фрагмент на код може да се използва за създаване на запълнени контурни участъци.

6. Повърхностен парцел

Горният фрагмент на код може да се използва за създаване на повърхностни участъци, които се използват за начертаване на 3D данни. Те показват функционална връзка между определена зависима променлива (Y) и две независими променливи (X и Z), а не показват отделните точки от данни. Практическо приложение за горния график би било да се визуализира как се сближава алгоритъмът на Gradient Descent.

7. Триъгълен повърхностен парцел

Горният фрагмент на код може да се използва за създаване на триъгълен сюжет.

8. Полигон

Горният фрагмент на код може да се използва за създаване на полигони.

9. Текстови пояснения в 3D

Горният фрагмент на кода може да се използва за създаване на текстови пояснения в 3D графики. Много е полезно при създаване на 3D графики, тъй като промяната на ъглите на сюжета не изкривява четимостта на текста.

10. 2D данни в 3D график

Горният фрагмент на код може да се използва за изчертаване на 2D данни в триизмерен график. Той е много полезен, тъй като позволява да се сравняват множество двумерни графики в 3D.

11. 2D Bar Bar в 3D

Горният фрагмент на код може да се използва за създаване на множество 2D графични ленти в едно 3D пространство за сравнение и анализ на разликите.

Джаджи в Matplotlib

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

1. Приспособление за отметка

Както можете да видите от горната графика, Matplotlib позволява на потребителя да персонализира коя графика да се показва с помощта на квадратчета. Това може да бъде особено полезно, когато има много различни категории, затрудняващи сравненията. Следователно, джунджуриите улесняват изолирането и сравняването на отделни графики и намаляват струпването.

2. Плъзгач джаджа за контрол на визуалните свойства на парцелите

Плъзгачът Matplotlib е много полезен за визуализиране на вариациите на параметрите в графики или математически уравнения. Както можете да видите, плъзгачът позволява на потребителя да променя стойностите на променливите / параметрите и да вижда промяната моментално.

Къде да отида от тук?

Ако се интересувате от проучване на по-интерактивни сюжети с модерна дизайнерска естетика, препоръчваме да проверите Dash от Plotly.

Това е, хора. Надявам се да намерите тази публикация за полезна. Пълният код (Jupyter Notebook и Python файлове) можете да намерите тук. Поради ограниченията на Jupyter Notebook, интерактивните сюжети (3D и джаджа) не работят правилно. Следователно, 2D графиките са предоставени в Jupyter Notebook, а 3D и widget сюжетите се предоставят като .py файлове.

Чувствайте се свободни да оставите вашите коментари по-долу.

Наздраве!

Сътрудници:

Gaurav Prachchhak, Tommy Betz, Veekesh Dhununjoy, Mihir Gajjar.