Вступление
В 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()
.
В любом случае это приводит к:
{.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()
Это приводит к:
{.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()
{.ezlazyload}
Если бы мы хотели, мы также могли бы изменить ориентацию графика,
изменив параметр vert
vert
определяет, будет ли график отображаться
вертикально, и по умолчанию для 1
fig, ax = plt.subplots()
ax.boxplot(fixed_acidity, vert=0)
plt.show()
{.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()
{.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()
{.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()
{.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.
Он служит уникальным практическим руководством по визуализации данных в виде множества инструментов, которые вы можете использовать в своей карьере.