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

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

Вступление

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

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

Гистограмма отображает форму и разброс данных непрерывной выборки.

Импортировать данные

Мы будем использовать набор данных Netflix Shows и визуализировать распределения оттуда.

Давайте импортируем Pandas и загрузим в набор данных:

 import pandas as pd 
 
 df = pd.read_csv('netflix_titles.csv') 

Постройте график гистограммы в Matplotlib

Теперь, когда набор данных загружен, давайте импортируем модуль PyPlot из Matplotlib и визуализируем распределение release_year s шоу, которые транслируются на Netflix:

 import matplotlib.pyplot as plt 
 import pandas as pd 
 
 df = pd.read_csv('netflix_titles.csv') 
 plt.hist(df['release_year']) 
 
 plt.show() 

Здесь у нас есть сценарий с минимальными настройками. Мы загружаем данные в DataFrame ( df ), затем используем экземпляр PyPlot и вызываем hist() для построения гистограммы для функции release_year . По умолчанию это будет подсчитывать количество появлений этих лет, заполнять столбцы в диапазонах и строить гистограмму.

Выполнение этого кода приводит к:

Учебник по простому построению гистограммы вmatplotlib{.ezlazyload}

Здесь Бункеры кино (диапазоны) устанавливаются на 10 лет. В каждом баре здесь представлены все шоу / фильмы сериями по 10 лет. Например, мы видим, что в период с 2000 по 2010 год было выпущено около 750 шоу. В то же время, с 2010 по 2020 год было выпущено около 5000 шоу.

Это довольно большие диапазоны для киноиндустрии, имеет смысл визуализировать их для диапазонов менее 10 лет.

Изменить размер бина гистограммы в Matplotlib

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

Мы импортируем numpy , так как это поможет нам рассчитать размер ящиков:

 import matplotlib.pyplot as plt 
 import pandas as pd 
 import numpy as np 
 
 df = pd.read_csv('netflix_titles.csv') 
 data = df['release_year'] 
 
 plt.hist(data, bins = np.arange(min(data), max(data) + 1, 1)) 
 
 plt.show() 

На этот раз мы извлекли столбец DataFrame в data , чтобы упростить работу.

Мы передали data в hist() и установили аргумент bins Он принимает список, который вы можете установить вручную, если хотите, особенно если вы хотите неравномерное распределение корзин.

Поскольку мы хотели бы объединить эти записи в один и тот же промежуток времени (1 год), мы создадим массив Numpy, который начинается с наименьшего значения ( min(data) ) и заканчивается наивысшим значением ( max(data) ) и идет с шагом 1 .

На этот раз запуск этого кода приводит к:

изменить размер бина гистограммы вmatplolib{.ezlazyload}

Вместо списка вы можете указать одно значение bins Это будет общее количество bins на графике. Использование 1 приведет к 1 полосе для всего графика.

Скажем, мы хотим иметь 20 ящиков, мы бы использовали:

 import matplotlib.pyplot as plt 
 import pandas as pd 
 import numpy as np 
 
 df = pd.read_csv('netflix_titles.csv') 
 data = df['release_year'] 
 
 plt.hist(data, bins = 20) 
 
 plt.show() 

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

изменить размер бина гистограммы равномерно вmatplotlib{.ezlazyload}

Это приводит к пятилетним интервалам, учитывая, что у нас есть данные за ~ 100 лет. Разделение его на 20 ячеек означает, что каждый будет содержать данные за 5 лет.

Постройте гистограмму с плотностью

Иногда вместо подсчета функций мы хотели бы проверить, какова плотность каждой полосы / корзины. То есть, насколько часто можно увидеть диапазон в заданном наборе данных. Поскольку мы работаем с интервалом в 1 год, это дает вероятность того, что фильм / шоу был выпущен в этом году.

Для этого мы можем просто установить аргумент density True :

 import matplotlib.pyplot as plt 
 import pandas as pd 
 import numpy as np 
 
 df = pd.read_csv('netflix_titles.csv') 
 data = df['release_year'] 
 bins = np.arange(min(data), max(data) + 1, 1) 
 
 plt.hist(data, bins = bins, density = True) 
 plt.ylabel('Density') 
 plt.xlabel('Year') 
 
 plt.show() 

Теперь вместо количества, которое мы видели раньше, нам будет представлена плотность записей:

график гистограммы с плотностьюmatplotlib{.ezlazyload}

Мы видим, что ~ 18% записей были выпущены в 2018 году, а затем ~ 14% в 2019 году.

Настройка графиков гистограмм в Matplotlib

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

 import matplotlib.pyplot as plt 
 import pandas as pd 
 import numpy as np 
 
 df = pd.read_csv('netflix_titles.csv') 
 data = df['release_year'] 
 bins = np.arange(min(data), max(data) + 1, 1) 
 
 plt.hist(data, bins = bins, density = True, histtype = 'step', alpha = 0.5, align = 'right', orientation = 'horizontal', log = True) 
 
 plt.show() 

Здесь мы установили различные аргументы:

  • bins - Количество ячеек на участке
  • density - использует ли PyPlot счетчик или плотность для заполнения графика
  • histtype - Тип графика гистограммы (по умолчанию - bar , хотя доступны другие значения, такие как step или stepfilled
  • alpha - альфа / прозрачность линий
  • align - с какой стороны ящиков выровнены полосы, по умолчанию - mid
  • orientation - горизонтальная / вертикальная ориентация, по умолчанию vertical
  • log - следует ли отображать график в логарифмической шкале или нет

Теперь это приводит к:

настроить гистограммуmatplotlib{.ezlazyload}

Поскольку мы установили align по right краю, мы видим, что полоса немного смещена вправо по вертикали от корзины 2020.

Заключение

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

Если вас интересует визуализация данных и вы не знаете, с чего начать, обязательно ознакомьтесь с нашим комплектом книг по визуализации данных в 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