График Matplotlib Box - Учебное пособие и примеры

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

Вступление

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

В этом уроке мы расскажем, как строить прямоугольные диаграммы в Matplotlib .

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

Импорт данных

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

Начнем с импорта всех необходимых нам библиотек. Мы импортируем Pandas для чтения и анализа набора данных, и нам, конечно же, нужно будет импортировать Matplotlib, или, точнее, модуль PyPlot:

 import pandas as pd 
 from matplotlib import pyplot as plt 

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

 dataframe = pd.read_csv("winequality-red.csv") 
 print(dataframe.head()) 
 print(dataframe.isnull().values.any()) 

 fixed acidity volatile acidity citric acid ... sulphates alcohol quality 
 0 7.4 0.70 0.00 ... 0.56 9.4 5 
 1 7.8 0.88 0.00 ... 0.68 9.8 5 
 2 7.8 0.76 0.04 ... 0.65 9.8 5 
 3 11.2 0.28 0.56 ... 0.58 9.8 6 
 4 7.4 0.70 0.00 ... 0.56 9.4 5 
 
 [5 rows x 12 columns] 
 False 

Второй оператор печати возвращает False , что означает отсутствие недостающих данных. Если бы они были, нам пришлось бы обрабатывать отсутствующие значения DataFrame .

Постройте коробчатую диаграмму в Matplotlib

Давайте выберем некоторые функции набора данных и визуализируем эти функции с помощью функции boxplot() . Мы воспользуемся Pandas для извлечения нужных столбцов функций и сохраним их как переменные для удобства:

 fixed_acidity = dataframe["fixed acidity"] 
 free_sulfur_dioxide = dataframe['free sulfur dioxide'] 
 total_sulfur_dioxide = dataframe['total sulfur dioxide'] 
 alcohol = dataframe['alcohol'] 

Как обычно, мы можем вызывать функции построения графика в экземпляре PyPlot ( plt ), экземпляре Figure или экземпляре Axes

 import pandas as pd 
 import matplotlib.pyplot as plt 
 
 dataframe = pd.read_csv("winequality-red.csv") 
 
 fixed_acidity = dataframe["fixed acidity"] 
 free_sulfur_dioxide = dataframe['free sulfur dioxide'] 
 total_sulfur_dioxide = dataframe['total sulfur dioxide'] 
 alcohol = dataframe['alcohol'] 
 
 fig, ax = plt.subplots() 
 ax.boxplot(fixed_acidity) 
 plt.show() 

Здесь мы извлекли fig и ax из возврата функции subplots() , поэтому мы можем использовать любой из них для вызова функции boxplot() . В качестве альтернативы мы могли бы просто plt.boxplot() .

В любом случае это приводит к:

простая рамочная диаграммаmatplotlib{.ezlazyload}

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

Мы также можем нанести несколько столбцов на одну фигуру, просто добавив больше столбцов. Это снова можно сделать либо с экземпляром plt , либо с объектом fig ax

 import pandas as pd 
 import matplotlib.pyplot as plt 
 
 dataframe = pd.read_csv("winequality-red.csv") 
 
 fixed_acidity = dataframe["fixed acidity"] 
 free_sulfur_dioxide = dataframe['free sulfur dioxide'] 
 total_sulfur_dioxide = dataframe['total sulfur dioxide'] 
 alcohol = dataframe['alcohol'] 
 
 columns = [fixed_acidity, free_sulfur_dioxide, total_sulfur_dioxide, alcohol] 
 
 fig, ax = plt.subplots() 
 ax.boxplot(columns) 
 plt.show() 

Это приводит к:

блочная диаграмма matplotlib с несколькимистолбцами{.ezlazyload}

Теперь у нас намного больше событий, поскольку мы решили построить несколько столбцов.

Настройка сюжета

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

Мы можем настроить график и добавить метки к оси X с помощью функции xticks Давайте передадим количество меток, которые мы хотим добавить, а затем метки для каждого из этих столбцов:

 fig, ax = plt.subplots() 
 ax.boxplot(columns) 
 plt.xticks([1, 2, 3, 4], ["Fixed acidity", "Free sulfur dioxide", "Total sulfur dioxide", "Alcohol"], rotation=10) 
 plt.show() 

график настройки ярлыкаmatplotlib{.ezlazyload}

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

 fig, ax = plt.subplots() 
 ax.boxplot(fixed_acidity, vert=0) 
 plt.show() 

вертикальная блочная диаграммаmatplotlib{.ezlazyload}

notch=True атрибут создает формат вырезы на коробке участка, patch_artist=True заполняет boxplot с цветами:

 fig, ax = plt.subplots() 
 columns = [free_sulfur_dioxide, total_sulfur_dioxide] 
 ax.boxplot(columns, notch=True, patch_artist=True) 
 plt.xticks([1, 2], ["Free sulfur dioxide", "Total sulfur dioxide"]) 
 plt.show() 

прямоугольник с выемками и заплатамиmatplotlib{.ezlazyload}

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

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

 fig, ax = plt.subplots() 
 columns = [free_sulfur_dioxide, total_sulfur_dioxide] 
 ax.boxplot(columns, patch_artist=True, meanline=True, showmeans=True) 
 plt.xticks([1, 2], ["Free sulfur dioxide", "Total sulfur dioxide"]) 
 plt.show() 

showmean box plotmatplotlib{.ezlazyload}

Мы можем раскрасить столбец с различными функциями, создав список шестнадцатеричных значений цвета и используя аргумент set_facecolor В приведенном ниже примере, мы zip в boxes элемент box переменной вместе с цветами , которые мы хотим использовать , а затем установить цвет лица для каждого из этих коробок.

 columns = [fixed_acidity, free_sulfur_dioxide, total_sulfur_dioxide, alcohol] 
 fig, ax = plt.subplots() 
 box = ax.boxplot(columns, notch=True, patch_artist=True) 
 plt.xticks([1, 2, 3, 4], ["Fixed acidity", "Free sulfur dioxide", "Total sulfur dioxide", "Alochol"]) 
 
 colors = ['#0000FF', '#00FF00', 
 '#FFFF00', '#FF00FF'] 
 
 for patch, color in zip(box['boxes'], colors): 
 patch.set_facecolor(color) 
 
 plt.show() 

изменить цвета графика окнаmatplotlib{.ezlazyload}

Заключение

В этом уроке мы узнали, как создать коробчатую диаграмму в Matplotlib и Python. Затем мы рассмотрели, как вы можете настроить его, используя такие аргументы, как vert , meanline и set_facecolor .

Если вас интересует визуализация данных и вы не знаете, с чего начать, обязательно ознакомьтесь с нашим комплектом книг по визуализации данных в Python{.ebook-link} :

::: {style=“border: 1px solid #ebebeb;padding: 15px;"} {.ebook-link}

Визуализация данных в Python

::: {.row} ::: {.col-md-4 .col-xs-12} {.ezlazyload .img-responsive .center-block} :::

::: {.col-md-8 .col-xs-12 .my-auto} Станьте опасными с визуализацией данных

✅ 30-дневная гарантия возврата денег без вопросов

✅ от новичка до продвинутого

✅ Регулярно обновляется бесплатно (последнее обновление в апреле 2021 г.)

✅ Обновлено с бонусными ресурсами и руководствами ::: ::: :::

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

Он служит подробным руководством, которое научит вас всему, что вам нужно знать о Pandas и Matplotlib, в том числе о том, как создавать типы графиков, которые не встроены в саму библиотеку.

Книга «Визуализация данных в Python» , книга для начинающих и средних разработчиков Python, проведет вас через простые манипуляции с данными с помощью Pandas, охватит основные библиотеки построения графиков, такие как Matplotlib и Seaborn, и покажет, как использовать преимущества декларативных и экспериментальных библиотек, таких как Altair. В частности, на протяжении 11 глав эта книга охватывает 9 библиотек Python: Pandas, Matplotlib, Seaborn, Bokeh, Altair, Plotly, GGPlot, GeoPandas и VisPy.

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

comments powered by Disqus