Использование ggplot в Python: визуализация данных с помощью plotnine

Содержание:

В этом руководстве вы узнаете, как использовать ggplot в Python для создания визуализаций данных с использованием грамматики графики. Грамматика графики - это инструмент высокого уровня, который позволяет создавать графики данных эффективным и согласованным способом. Он абстрагирует самые низкоуровневые детали, позволяя вам сосредоточиться на создании значимых и красивых визуализаций для ваших данных.

В этом руководстве вы научитесь:

    • Устанавливать plotnine и Jupyter Notebook
    • Комбинировать различные элементы грамматики графики
    • Использовать plotnine для эффективного и последовательного создания визуализаций
    • Экспортировать визуализации данных в файлы

Настройка вашей рабочей среды

В этом разделе вы узнаете, как настроить свою среду. Вы затронете следующие темы:

    • Создание виртуальной среды
    • Установка plotnine
    • Установка Juptyer Notebook

Виртуальные среды позволяют устанавливать пакеты в изолированных средах. Они очень полезны, когда вы хотите попробовать некоторые пакеты или проекты, не вмешиваясь в общесистемную установку.

Выполните следующие команды, чтобы создать каталог с именем data-visualization и виртуальную среду внутри него:

$ mkdir data-visualization
$ cd data-visualization
$ python3 -m venv venv

После выполнения вышеуказанных команд вы найдете свою виртуальную среду в каталоге визуализации данных. Выполните следующую команду, чтобы активировать виртуальную среду и начать ее использовать:

$ source ./venv/bin/activate

Когда вы активируете виртуальную среду, любой пакет, который вы устанавливаете, будет установлен внутри среды, не влияя на общесистемную установку.

Затем вы установите plotnine внутри виртуальной среды с помощью установщика пакета pip.

Установите plotnine, выполнив эту команду:

$ python -m pip установить plotnine

Выполнение указанной выше команды делает пакет plotnine доступным в вашей виртуальной среде.

Наконец, вы установите Jupyter Notebook. Хотя это не обязательно для использования plotnine, вы найдете Jupyter Notebook действительно полезным при работе с данными и построении визуализаций.

Чтобы установить Jupyter Notebook, используйте следующую команду:

$ python -m pip установить jupyter

Поздравляем, теперь у вас есть виртуальная среда с установленными plotnine и Jupyter Notebook! При такой настройке вы сможете запускать все образцы кода, представленные в этом руководстве.

Создайте свой первый проект с помощью ggplot и Python

В этом разделе вы узнаете, как создать свою первую визуализацию данных с помощью ggplot в Python.

Примеры наборов данных действительно удобны, когда вы знакомитесь с функциями plotnine. Каждый набор данных предоставляется в виде pandas DataFrame, двумерной табличной структуры данных, предназначенной для хранения данных.

В этом руководстве вы будете работать со следующими наборами данных:

    • временной ряд экономических данных США.
    •  данные об экономии топлива для ряда транспортных средств.
    •  уровень озера Гурон между 1875 и 1972 годами.

Вы можете использовать Jupyter Notebook для проверки любого набора данных. Запустите Jupyter Notebook с помощью следующих команд:

$ source ./venv/bin/activate
$ jupyter-notebook

Затем, войдя в Jupyter Notebook, запустите следующий код, чтобы увидеть необработанные данные в наборе экономических данных:

from plotnine.data import economics

economics

Код импортирует набор экономических данных из plotnine.data и отображает его в таблице:

      date      pce      pop   psavert uempmed  unemploy
0   1967-07-01  507.4   198712  12.5    4.5     2944
1   1967-08-01  510.5   198911  12.5    4.7     2945
... ...         ...     ...     ...     ...     ...
572 2015-03-01  12161.5 320707  5.2     12.2    8575
573 2015-04-01  12158.9 320887  5.6     11.7    8549

Как видите, набор данных включает экономическую информацию за каждый месяц с 1967 по 2015 год. Каждая строка имеет следующие поля:

  • date: месяц, когда были собраны данные.
  • pce: Расходы на личное потребление (в миллиардах долларов)
  • pop: Общая численность населения (в тысячах)
  • psavert: норма личных сбережений
  • uempmed: средняя продолжительность безработицы (в неделях).
  • unemploy: количество безработных (в тысячах)

Теперь, используя plotnine, вы можете создать график, показывающий эволюцию популяции с годами:

from plotnine.data import economics
from plotnine import ggplot, aes, geom_line

(
    ggplot(economics)  # What data to use
    + aes(x="date", y="pop")  # What variable to use
    + geom_line()  # Geometric object to use for drawing
)

В этом примере короткого кода создается график из набора данных economics. Вот краткая разбивка:

Строка 1: вы импортируете economicsнабор данных.

Строка 2: вы импортируете ggplot()класс, а также некоторые полезные функции из plotnineaes()и geom_line().

Строка 5: вы создаете объект plot, используяggplot(), передавая economicsфрейм данных конструктору.

Строка 6: вы добавляетеaes(), чтобы установить переменную для использования для каждой оси, в данном случае dateи pop.

Строка 7: вы добавляетеgeom_line(), чтобы указать, что диаграмма должна быть нарисована в виде линейного графика.

Выполнение приведенного выше кода дает следующий результат:

Привет Плотнин пример

Вы только что создали проект, показывающий эволюцию популяции с течением времени!

В этом разделе вы увидели три обязательных компонента, которые необходимо указать при использовании грамматики графики:

  • Данные, которые вы хотите построить
  • Переменные, используемые на каждой оси
  • Геометрический объект, используемый для рисования

Вы также видели, что различные компоненты объединяются с помощью оператора +.

Понимание грамматики графики

Грамматика графики-это высокоуровневый инструмент, который позволяет описывать компоненты графики, абстрагируя вас от низкоуровневых деталей собственно рисования пикселей на холсте.

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

Существует множество различных грамматик графики, и они отличаются по компонентам и правилам, которые они используют. Грамматика графики, реализованная plotnine, основана на ggplot2языке программирования R.

Ниже вы узнаете об основных компонентах и правилах графической грамматики, а также о том, как использовать их для создания визуализаций данных. Сначала вы перечислите три необходимых компонента для создания сюжета:

  1. Данные - это информация, используемая при создании графика.
  2. Эстетика (aes) обеспечивает сопоставление между переменными данных и эстетическими, или графическими, переменными, используемыми базовой системой рисования. В предыдущем разделе вы сопоставили переменные dateи popданные с эстетическими переменными по осям x и Y.
  3. Geometric objects (geoms) определяет тип геометрического объекта, который будет использоваться на чертеже. Вы можете использовать точки, линии, бары и многие другие.

Без любого из этих трех компонентов plotnine не знал бы, как нарисовать график.

Вы также узнаете о дополнительных компонентах, которые можно использовать:

  • Статистические преобразования определяют вычисления и агрегации, применяемые к данным перед их построением.
  • Шкалы применяют некоторые преобразования во время отображения от данных к эстетике. Например, иногда вы можете использовать логарифмическую шкалу, чтобы лучше отразить некоторые аспекты ваших данных.
  • Фасеты позволяют разделить данные на группы на основе некоторых атрибутов, а затем построить каждую группу на отдельной панели на том же графике.
  • Системы координат отображают положение объектов в 2D графическом расположении на графике. Например, вы можете перевернуть вертикальную и горизонтальную оси, если это имеет больше смысла в создаваемой визуализации.
  • Темы позволяют управлять визуальными свойствами, такими как цвета, шрифты и формы.

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

Построение графиков данных с использованием Python и ggplot

В этом разделе вы узнаете больше о трех необходимых компонентах для создания визуализации данных с помощью plotnine:

  1. Данные
  2. Эстетика
  3. Геометрический объект

Вы также увидите, как они объединяются для создания графика из набора данных.

Данные: источник информации

Ваш первый шаг при создании визуализации данных-это указание того, какие данные нужно построить. В plotnine это делается путем создания ggplotобъекта и передачи конструктору набора данных, который вы хотите использовать.

Следующий код создает ggplotобъект, используя набор данных примера экономии топлива plotnine, mpg:

from plotnine.data import mpg
from plotnine import ggplot

ggplot(mpg)

Этот код создает объект, принадлежащий классуggplot, используя mpgнабор данных. Обратите внимание, что, поскольку вы еще не указали эстетику или геометрический объект, приведенный выше код создаст пустой участок. Далее вы будете строить сюжет по частям.

Как вы уже видели ранее, вы можете проверить набор данных из записной книжки Jupyter с помощью следующего кода:

from plotnine.data import mpg 

mpg

Эти две строки кода импортируют и показывают набор данных, отображая следующие выходные данные:

manufacturer  model  displ  year  cyl  trans      drv  cty  hwy  fl  class
0 audi          a4      1.8   1999  4    auto(l5)   f    18   29   p  compact
1 audi          a4      1.8   1999  4    manual(m5) f    21   29   p  compact
2 audi          a4      2.0   2008  4    manual(m6) f    20   31   p  compact
...

Результатом является таблица, содержащая данные о расходе топлива для 234 автомобилей с 1999 по 2008 год. Поле Объем (displ) - это размер двигателя в литрах. cty и hwyэкономия топлива в милях на галлон для езды по городу и шоссе.

В следующих разделах вы узнаете, как превратить эти необработанные данные в графику с помощью plotnine.

 

Эстетика: определение переменных для каждой оси

После указания данных, которые вы хотите визуализировать, следующим шагом будет определение переменной, которую вы хотите использовать для каждой оси на графике. Каждая строка в фрейме данных может содержать много полей, поэтому вам нужно указать plotnine, какие переменные вы хотите использовать в графике.

Эстетика отображает переменные данных в графические атрибуты, такие как 2D-положение и цвет. Например, следующий код создает график, показывающий классы транспортных средств на оси x и расход топлива на шоссе на оси y:

from plotnine.data import mpg 
from plotnine import ggplot, aes 

ggplot(mpg) + aes(x="class", y="hwy")

Используя ggplotобъект из предыдущего раздела в качестве основы для визуализации, код отображает атрибут транспортного classсредства на горизонтальную графическую ось, а hwyэкономию топлива-на вертикальную ось.

Но сгенерированный график все еще пуст, потому что в нем отсутствует геометрический объект для представления каждого элемента данных.

Геометрические Объекты: Выберите Различные Типы Участков

После определения ваших данных и атрибутов, которые вы хотите использовать в графике, вам нужно указать геометрический объект, чтобы указать plotnine, как должны быть нарисованы точки данных.

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

Следующий код иллюстрирует, как использовать точечный геометрический объект для построения данных:

from plotnine.data import mpg 
from plotnine import ggplot, aes, geom_point 

ggplot(mpg) + aes(x="class", y="hwy") + geom_point()

В приведенном выше коде geom_point()выбирается точечный геометрический объект. Запуск кода приводит к следующему результату:

График, показывающий расход топлива для транспортных средств различных классов

Как вы можете видеть, сгенерированная визуализация данных имеет точку для каждого транспортного средства в наборе данных. Оси показывают класс транспортного средства и экономию топлива на шоссе.

Существует множество других геометрических объектов, которые можно использовать для визуализации одного и того же набора данных. Например, следующий код использует геометрический объект bar для отображения количества транспортных средств для каждого класса:

from plotnine.data import mpg 
from plotnine import ggplot, aes, geom_bar 

ggplot(mpg) + aes(x="class") + geom_bar()

Здесь geom_bar()геометрический объект устанавливается в положение bar. Поскольку код не указывает никакого атрибута для оси y, geom_bar()неявно группирует точки данных по атрибуту, используемому для оси x, а затем использует количество точек в каждой группе для оси Y.

Запустив код, вы увидите следующий вывод:

График количества транспортных средств в каждом классе с использованием баров

Высота каждой полосы на графике представляет собой количество транспортных средств, принадлежащих к соответствующему классу транспортных средств. Вы узнаете больше об агрегации данных и группировке последних разделов.

В этом разделе вы узнали о трех обязательных компонентах, которые необходимо указать при создании визуализаций данных:

  1. Данные
  2. Эстетика
  3. Геометрический объект

В следующих разделах вы узнаете о некоторых дополнительных компонентах, которые можно использовать для создания более сложной и красивой графики.

Использование дополнительных Python и ggplotфункций для улучшения визуализации данных

В этом разделе вы узнаете о дополнительных компонентах, которые можно использовать при построении визуализаций данных с помощью plotnine. Эти компоненты можно сгруппировать в пять категорий:

  1. Статистические преобразования
  2. Весы
  3. Система координат
  4. Грани
  5. Темы

Вы можете использовать их для создания более богатых и красивых сюжетов.

Статистические преобразования: агрегирование и преобразование ваших данных

Статистические преобразования применяют некоторые вычисления к данным перед их построением, например для отображения некоторого статистического показателя вместо исходных данных. plotnine включает в себя несколько статистических преобразований, которые вы можете использовать.

Допустим, вы хотите создать гистограмму для отображения распределения уровней озера Гурон с 1875 по 1975 год. Этот набор данных входит в состав plotnine. Вы можете использовать следующий код для проверки набора данных из Jupyter Notebook и узнать о его формате:

# Import our example dataset with the levels of Lake Huron 1875–1975 
from plotnine.data import huron 

huron

Код импортирует и показывает набор данных, производя следующие выходные данные:

    year  level   decade
0   1875  580.38  1870
1   1876  581.86  1870
...
96  1971  579.89  1970
97  1972  579.96  1970

Как вы можете видеть, набор данных содержит три столбца:

  1. year
  2. level
  3. decade

Теперь вы можете построить гистограмму в два этапа:

  1. Сгруппируйте измерения уровня в бункеры.
  2. Отображение количества измерений в каждом бункере с помощью гистограммы.

Следующий код показывает, как эти шаги могут быть выполнены в plotnine:

from plotnine.data import huron 
from plotnine import ggplot, aes, stat_bin, geom_bar 

ggplot(huron) + aes(x="level") + stat_bin(bins=10) + geom_bar()

В приведенном выше коде stat_bin()levelдиапазон делится на десять ячеек одинакового размера. Затем количество измерений, попадающих в каждую ячейку, рисуется с помощью гистограммы.

Запуск кода приводит к следующему графику:

Гистограмма уровня озера Гурон

Этот график показывает количество измерений для каждого диапазона уровней озера. Как видите, большую часть времени уровень находился между 578и.580

Для большинства распространенных задач, таких как построение гистограмм, plotnine включает в себя очень удобные функции, которые делают код более сжатым. Например, с geom_histogram()помощью, вы можете построить приведенную выше гистограмму следующим образом:

from plotnine.data import huron
from plotnine import ggplot, aes, geom_histogram

ggplot(huron) + aes(x="level") + geom_histogram(bins=10)

Использованиеgeom_histogram()-это то же самое, что использование stats_bin()и тогда geom_bar(). Запуск этого кода генерирует ту же самую графику, которую вы видели выше.

Теперь давайте рассмотрим другой пример статистической трансформации.

Прямоугольная диаграмма-это очень популярный статистический инструмент, используемый для отображения минимальной, максимальной, выборочной медианы, первого и третьего квартилей и выбросов из набора данных.

Предположим, вы хотите построить визуализацию на основе одного и того же набора данных, чтобы показать прямоугольную диаграмму для измерений уровня каждого десятилетия. Вы можете построить этот участок в два этапа:

  1. Сгруппируйте измерения по десятилетиям.
  2. Создайте прямоугольную диаграмму для каждой группы.

Вы можете сделать первый шаг, используя factor()спецификацию эстетики. factor() группирует вместе все точки данных, имеющие одинаковое значение для указанного атрибута.

Затем, сгруппировав данные по десятилетиям ,вы можете нарисовать прямоугольную диаграмму для каждой группы с помощьюgeom_boxplot().

Следующий код создает график, используя шаги, описанные выше:

from plotnine.data import huron
from plotnine import ggplot, aes, geom_boxplot 

( 
ggplot(huron) 
+ aes(x="factor(decade)", y="level") 
+ geom_boxplot() 
)

Код группирует строки данных по десятилетиям с помощьюfactor(), а затем использует geom_boxplot()для создания коробчатых диаграмм.

Как вы видели в предыдущем примере, некоторые геометрические объекты имеют неявные статистические преобразования. Это очень удобно, так как делает ваш код более лаконичным. Использование geom_boxplot()подразумеваетstat_boxplot(), что заботится о вычислении квартилей и выбросов.

Запустив приведенный выше код, вы получите следующее графическое изображение:

Участок коробки уровня озера Гурон для каждого десятилетия

На графике показано распределение уровней воды с использованием коробчатого графика для каждого десятилетия.

Существуют и другие статистические преобразования, которые можно использовать для построения визуализаций данных с помощью ggplotPython.

Масштабирование: изменение масштаба данных в соответствии с его значением

Масштабы-это еще один вид преобразования, который можно применить при отображении от данных к эстетике. Они могут помочь сделать ваши визуализации более понятными.

В начале этого урока вы видели график, который показывал численность населения за каждый год, начиная с 1970 года. Следующий код показывает, как можно использовать шкалы для отображения прошедших лет с 1970 года вместо необработанных дат:

from plotnine.data import economics 
from plotnine import ggplot, aes, scale_x_timedelta, labs, geom_line 
( 
ggplot(economics) 
+ aes(x="date", y="pop") 
+ scale_x_timedelta(name="Years since 1970") 
labs(title="Population Evolution", y="Population") 
+ geom_line() 
)

Использование scale_x_timedelta()преобразует значение x каждой точки, вычисляя его разницу с самой старой датой в наборе данных. Обратите внимание, что код также используется labs()для установки более описательной метки для оси y и заголовка.

Запуск кода показывает этот график:

График, показывающий Дельта-шкалу даты, метки и заголовки

Не изменяя данные, вы сделали визуализацию более понятной и дружественной для читателя. Как вы можете видеть, график теперь имеет лучшие описания, а ось x показывает прошедшие годы с 1970 года вместо дат.

plotnine предоставляет вам на выбор большое количество масштабных преобразований, включая логарифмические и другие нелинейные шкалы.

Системы координат: отображение значений данных в 2D-пространство

Система координат определяет, как точки данных сопоставляются с 2D графическими местоположениями на графике. Вы можете думать о нем как о карте от математических переменных до графических позиций. Выбор правильной системы координат может улучшить читаемость визуализаций данных.

Давайте вернемся к предыдущему примеру гистограммы для подсчета транспортных средств, принадлежащих к различным классам. Вы создали сюжет, используя следующий код:

from plotnine.data import mpg 
from plotnine import ggplot, aes, geom_bar 

ggplot(mpg) + aes(x="class") + geom_bar()

Этот код используется geom_bar()для рисования полосы для каждого класса транспортных средств. Поскольку конкретная система координат не задана, используется система координат по умолчанию.

Запуск кода генерирует следующий график:

График количества транспортных средств в каждом классе с использованием баров

Высота каждой полосы на графике представляет собой количество транспортных средств в классе.

Хотя в приведенном выше графике нет ничего плохого, ту же самую информацию можно было бы лучше визуализировать, перевернув оси, чтобы отобразить горизонтальные полосы вместо вертикальных.

plotnine предоставляет несколько функций, которые позволяют изменять систему координат. Вы можете перевернуть оси с помощьюcoord_flip():

from plotnine.data import mpg 
from plotnine import ggplot, aes, geom_bar, coord_flip 

ggplot(mpg) + aes(x="class") + geom_bar() + coord_flip()

Код переворачивает оси x и y с помощьюcoord_flip(). Запустив код, вы увидите следующее графическое изображение:

Транспортные средства в каждом классе гистограмма с перевернутыми координатами

На этом графике показана та же информация, что и на предыдущем графике, но, перевернув оси, вы можете легче понять и сравнить различные бары.

Нет жесткого правила о том, какая система координат лучше. Вы должны выбрать тот, который лучше всего подходит для вашей проблемы и данных. Дайте им попробовать и сделать некоторые эксперименты, чтобы узнать, что работает для каждого случая.

Фасеты: построение подмножеств данных на панелях в одном и том же графике

В этом разделе вы узнаете о гранях, одной из самых крутых особенностей plotnine. Фасеты позволяют сгруппировать данные по некоторым атрибутам, а затем построить каждую группу отдельно, но на одном изображении. Это особенно полезно, когда вы хотите показать более двух переменных на одном графике.

Например, предположим, что вы хотите взять набор данных об экономии топлива (mpg) и построить график, показывающий количество миль на галлон для каждого размера двигателя (displacement) для каждого класса транспортных средств за каждый год. В этом случае ваш график должен отображать информацию из четырех переменных:

  1. hwy: Мили на галлон
  2. displ: Размер двигателя
  3. class: Класс транспортного средства
  4. year: Модельный год

Это представляет собой сложную задачу, поскольку у вас больше переменных, чем графических измерений. Вы могли бы использовать 3D-перспективу, если бы вам нужно было отобразить три переменные, но четырехмерную графику трудно даже представить.

Есть двухэтапный трюк, который вы можете использовать, когда сталкиваетесь с этой проблемой:

  1. Начните с разбиения данных на группы, где все точки данных в группе имеют одинаковые значения для некоторых атрибутов.
  2. Постройте график каждой группы по отдельности, показывая только атрибуты, не используемые в группировке.

Возвращаясь к примеру, вы можете сгруппировать транспортные средства по классам и годам, а затем построить график каждой группы, чтобы показать водоизмещение и мили на галлон. С помощью этой методики была создана следующая визуализация:

Построение графика с использованием фасетов для отображения подзаголовков для классов транспортных средств и лет пример

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

Эта визуализация данных была сгенерирована с помощью следующего кода:

from plotnine.data import mpg 
from plotnine import ggplot, aes, facet_grid, labs, geom_point 
( 
ggplot(mpg) 
+ facet_grid(facets="year~class") 
+ aes(x="displ", y="hwy") 
+ labs( 
x="Engine Size", 
y="Miles per Gallon", 
title="Miles per Gallon for Each Year and Vehicle Class", 
) 
+ geom_point() 
)

Код разделяет данные по годам и классам автомобилей с помощью facet_grid(), передавая ему атрибуты, которые будут использоваться для разделения с помощью facets="year~class". Для каждого раздела данных график строится с использованием компонентов, которые вы видели в предыдущих разделах, таких как эстетика, геометрические объекты и labs().

facet_grid() отображает разделы в сетке, используя один атрибут для строк, а другой - для столбцов. plotnine предоставляет другие методы фасетирования, которые можно использовать для разделения данных с использованием более двух атрибутов.

Темы: улучшите внешний вид вашей визуализации

Еще один отличный способ улучшить представление ваших визуализаций данных - выбрать нестандартную тему, чтобы ваши графики выделялись, делая их более красивыми и яркими.

plotnine включает в себя несколько тем, которые вы можете выбрать. Следующий код генерирует ту же графику, что и в предыдущем разделе, но с использованием темной темы:

from plotnine.data import mpg 
from plotnine import ggplot, aes, facet_grid, labs, geom_point, theme_dark 
( 
ggplot(mpg) 
+ facet_grid(facets="year~class") 
+ aes(x="displ", y="hwy") 
+ labs
( 
x="Engine Size", 
y="Miles per Gallon", 
title="Miles per Gallon for Each Year and Vehicle Class", 
) 
+ geom_point() 
+ theme_dark() 
)

В приведенном выше коде указание theme_dark()говорит плотнину нарисовать проект с использованием темной темы. Вот графическое изображение, сгенерированное этим кодом:

Темная тема плотнина

Как видно на рисунке, настройка темы влияет на цвета, шрифты и стили фигур.

theme_xkcd() это еще одна тема, которую стоит упомянуть, потому что она дает вам действительно классный комический вид.

Тема xkcd плотнина

Выбор правильной темы может помочь вам привлечь и удержать внимание вашей аудитории.

В предыдущих разделах вы узнали о наиболее важных аспектах грамматики графики и о том, как использовать plotnine для построения визуализаций данных. Использование ggplotв Python позволяет создавать визуализации постепенно, сначала фокусируясь на ваших данных, а затем добавляя и настраивая компоненты для улучшения их графического представления.

В следующем разделе вы узнаете, как использовать цвета и экспортировать свои визуализации.

 

Визуализация Многомерных Данных

Как вы видели в разделе о фасетах, отображение данных с более чем двумя переменными представляет некоторые проблемы. В этом разделе вы узнаете, как отображать три переменные одновременно, используя цвета для представления значений.Например, возвращаясь к набору данных топливной экономичности (mpg), предположим, что вы хотите визуализировать связь между количеством цилиндров двигателя и топливной экономичностью, но также хотите включить информацию о классах транспортных средств в тот же график.В качестве альтернативы фасетированию можно использовать цвета для представления значения третьей переменной. Чтобы достичь этого, вы должны сопоставить количество цилиндров двигателя с осью x и миль на галлон с осью y, а затем использовать различные цвета для представления классов транспортных средств.Следующий код создает описанную визуализацию данных:

from plotnine.data import mpg 
from plotnine import ggplot, aes, labs, geom_point 
( 
ggplot(mpg) 
+ aes(x="cyl", y="hwy", color="class") 
+ labs
( 
x="Engine Cylinders", 
y="Miles per Gallon", 
color="Vehicle Class", 
title="Miles per Gallon for Engine Cylinders and Vehicle Classes", 
) 
+ geom_point() )

Класс транспортного средства сопоставляется с графическим цветом, передавая color="class"эстетическое определение.

При запуске кода отображается эта графика:

Построение графика с использованием цветов для представления классов транспортных средств

Как вы можете видеть, точки имеют разные цвета в зависимости от класса, к которому принадлежит транспортное средство.

В этом разделе вы узнали еще один способ отображения более двух переменных на графике с помощью ggplotPython. Когда у вас есть три переменные, вы должны выбирать между использованием фасетов и цветов в зависимости от того, какой подход облегчает визуализацию данных.

Экспорт графиков в файлы

В некоторых ситуациях вам нужно будет сохранить созданные графики в графические файлы программно, а не показывать их в записной книжке Jupyter.

plotnine предоставляет очень удобный save()метод, который вы можете использовать для экспорта графика в виде изображения и сохранения его в файл. Например, следующий фрагмент кода показывает, как можно сохранить графику, показанную в начале руководства, в файл с именемmyplot.png:

from plotnine.data import economics 
from plotnine import ggplot, aes, geom_line myPlot = ggplot(economics) + aes(x="date", y="pop") + geom_line() 
myPlot.save("myplot.png", dpi=600)

В этом коде вы сохраняете объект визуализации данныхmyPlot, а затем вызываете save()его для экспорта графического изображения в виде изображения и сохранения его какmyplot.png.

Вы можете настроить некоторые настройки изображения при использованииsave(), например, изображение точек на дюйм (dpi). Это действительно полезно, когда вам нужны высококачественные изображения для включения в презентации или статьи.

plotnine также включает в себя метод сохранения различных сюжетов в одном PDF-файле.

Возможность экспорта визуализаций данных открывает множество возможностей. Вы не ограничены только просмотром ваших данных в интерактивном ноутбуке Jupyter-вы также можете создавать графики и экспортировать их для последующего анализа или обработки.

Вывод

Использование ggplotв Python позволяет создавать визуализации данных очень сжатым и последовательным способом. Как вы уже видели, даже сложные и красивые сюжеты могут быть сделаны с помощью нескольких строк кода с использованием plotnine.

В этом уроке вы узнали, как это сделать.:

  • Установите Plotnine и Jupyter Notebook
  • Комбинируйте различные элементы грамматики графики
  • Используйте plotnine для создания визуализаций эффективным и последовательным способом.
  • Экспорт визуализаций данных в файлы

Затем используйте все, что вы узнали, чтобы построить удивительные визуализации данных, которые помогут вам и другим лучше понять данные!

Ссылка на оригинальную статью: Using ggplot in Python: Visualizing Data With plotnine

Опубликовано в НИР

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *