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

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

Вступление

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

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

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

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

Построить барный участок в Матплотлибе

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

 import matplotlib.pyplot as plt 
 
 x = ['A', 'B', 'C'] 
 y = [1, 5, 3] 
 
 plt.bar(x, y) 
 plt.show() 

Здесь у нас есть несколько категориальных переменных в списке - A , B и C У нас также есть пара непрерывных переменных в другом списке - 1 , 5 и 3 . Затем связь между ними визуализируется на гистограмме путем передачи этих двух списков в plt.bar() .

В результате получается четкая и простая гистограмма:

основной график бара вmatplotlib{.ezlazyload}

Постройте график горизонтальной полосы в Matplotlib

Часто нам может потребоваться построить гистограмму горизонтально, а не вертикально. Этого легко добиться, переключив plt.bar() вызов plt.barh() :

 import matplotlib.pyplot as plt 
 
 x = ['A', 'B', 'C'] 
 y = [1, 5, 3] 
 
 plt.barh(x, y) 
 plt.show() 

В результате получается горизонтально ориентированная гистограмма:

горизонтальный график вmatplotlib{.ezlazyload}

Изменить цвет диаграммы в Matplotlib

Изменить цвет самих полос так же просто, как установить color со списком цветов. Если у вас в списке больше полос, чем цветов, они снова начнут применяться с первого цвета:

 import matplotlib.pyplot as plt 
 
 x = ['A', 'B', 'C'] 
 y = [1, 5, 3] 
 
 plt.bar(x, y, color=['red', 'blue', 'green']) 
 plt.show() 

Теперь у нас есть красиво окрашенная гистограмма:

изменить цвет диаграммы вmatplotlib{.ezlazyload}

Конечно, вы также можете использовать сокращенные версии или даже коды HTML:

 plt.bar(x, y, color=['red', 'blue', 'green']) 
 plt.bar(x, y, color=['r', 'b', 'g']) 
 plt.bar(x, y, color=['#ff0000', '#00ff00', '#0000ff']) 
 plt.show() 

Или вы даже можете поместить одно скалярное значение, чтобы применить его ко всем барам:

 plt.bar(x, y, color='green') 

изменить цвет диаграммы вmatplotlib{.ezlazyload}

Гистограмма с полосами ошибок в Matplotlib

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

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

 import matplotlib.pyplot as plt 
 import numpy as np 
 
 x = np.array([4, 5, 6, 3, 6, 5, 7, 3, 4, 5]) 
 y = np.array([3, 4, 1, 3, 2, 3, 3, 1, 2, 3]) 
 z = np.array([6, 9, 8, 7, 9, 8, 9, 6, 8, 7]) 
 
 x_mean = np.mean(x) 
 y_mean = np.mean(y) 
 z_mean = np.mean(z) 
 
 x_deviation = np.std(x) 
 y_deviation = np.std(y) 
 z_deviation = np.std(z) 
 
 bars = [x_mean, y_mean, z_mean] 
 bar_categories = ['X', 'Y', 'Z'] 
 error_bars = [x_deviation, y_deviation, z_deviation] 
 
 plt.bar(bar_categories, bars, yerr=error_bars) 
 plt.show() 

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

Используя функции Numpy mean() и std() , это очень просто. Тогда мы упаковали бар значение в bars список, барные названия приятного пользовательского опыта в bar_categories и , наконец , - стандартные отклонения значений в error_bars список.

Чтобы визуализировать это, мы вызываем обычную bar() , передавая bar_categories (категориальные значения) и bars (непрерывные значения) вместе с аргументом yerr

yerr вертикально, мы используем ваш аргумент. xerr горизонтально, мы бы использовали аргумент xerr. Здесь мы предоставили информацию о планках погрешностей.

В конечном итоге это приводит к:

гистограмма с полосами ошибок вmatplotlib{.ezlazyload}

Построение гистограммы с накоплением в Matplotlib

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

Для этого у нас снова будут группы данных. Затем мы рассчитаем их стандартное отклонение для планок погрешностей.

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

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

Для более чем одной группы вы захотите сложить значения перед построением графика, иначе гистограмма не будет складываться. Мы будем использовать np.add np.add().tolist() чтобы добавить элементы двух списков и создать список обратно:

 import matplotlib.pyplot as plt 
 import numpy as np 
 
 # Groups of data, first values are plotted on top of each other 
 # Second values are plotted on top of each other, etc 
 x = [1, 3, 2] 
 y = [2, 3, 3] 
 z = [7, 6, 8] 
 
 # Standard deviation rates for error bars 
 x_deviation = np.std(x) 
 y_deviation = np.std(y) 
 z_deviation = np.std(z) 
 
 bars = [x, y, z] 
 ind = np.arange(len(bars)) 
 bar_categories = ['X', 'Y', 'Z']; 
 bar_width = 0.5 
 bar_padding = np.add(x, y).tolist() 
 
 
 plt.bar(ind, x, yerr=x_deviation, width=bar_width) 
 plt.bar(ind, y, yerr=y_deviation, bottom=x, width=bar_width) 
 plt.bar(ind, z, yerr=z_deviation, bottom=bar_padding, width=bar_width) 
 
 plt.xticks(ind, bar_categories) 
 plt.xlabel("Stacked Bar Plot") 
 
 plt.show() 

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

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

Заключение

В этом руководстве мы рассмотрели несколько способов построения гистограммы с использованием 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