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

Введение Plotly - это основанная на JavaScript библиотека визуализации данных Python, ориентированная на интерактивную и веб-визуализацию. Он прост, как Seaborn, с высокоуровневым API, но также обладает интерактивностью Bokeh. В дополнение к функциональным возможностям основной библиотеки использование встроенного Plotly Express с Dash делает его отличным выбором для веб-приложений и интерактивных панелей мониторинга, управляемых данными, обычно написанных на Flask. В этом руководстве мы рассмотрим, как построить столбец.

Вступление

Plotly - это библиотека визуализации данных Python на основе JavaScript, ориентированная на интерактивную и веб- визуализацию. Он прост, как Seaborn, с высокоуровневым API, но также обладает интерактивностью Bokeh.

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

В этом руководстве мы рассмотрим, как построить гистограмму с помощью Plotly .

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

Земельный участок под бар с Plotly

Для того, чтобы построить в Plot Bar в Plotly, просто вызовите bar() функцию (Plotly Экспресс px ) , например, предоставление x и y аргументы с правильными данными:

 import plotly.express as px 
 
 x = ['Category 1', 'Category 2', 'Category 3'] 
 y = [5, 3, 6] 
 
 fig = px.bar(x, y) 
 fig.show() 

Здесь у нас есть три категории: список, который мы предоставили x и несколько скалярных значений, которые мы предоставили аргументу y Это приводит к простой и интуитивно понятной гистограмме:

Однако при визуализации данных мы редко работаем со списками. Давайте импортируем набор данных пользователей Telecom и визуализируем InternetService и tenure через гистограмму.

Функция InternetService - это категориальная функция, которая указывает, какой тип услуги использует клиент, а tenure - это числовая характеристика, которая показывает, как долго клиент работает в компании в месяцах:

 import pandas as pd 
 import plotly.express as px 
 
 df = pd.read_csv('telecom_users.csv') 
 print(df.head()) 

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

 gender SeniorCitizen tenure InternetService ... 
 0 Male 0 72 No ... 
 1 Female 0 44 Fiber optic ... 
 2 Female 1 38 Fiber optic ... 
 3 Male 0 4 DSL ... 
 4 Male 0 2 DSL ... 

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

 import pandas as pd 
 import plotly.express as px 
 
 df = pd.read_csv('telecom_users.csv') 
 
 fig = px.bar(df, x = 'InternetService', y = 'tenure') 
 fig.show() 

Для построения графика данных из набора данных мы предоставили источник данных ( df ) в качестве первого аргумента и имена столбцов, которые мы хотели бы визуализировать для аргументов x и y Наносит на карту их, извлекает данные и генерирует график:

{.ezlazyload}

Теперь сюжет генерируется Plotly фактически отделяет каждый экземпляр в небольшой сложенном бар своих собственном на этом участке, так как несколько строк один и то же x значение, в отличии от простого отображения 1-к-1 , как мы имели в первом примере.

Мы можем видеть совокупное количество месяцев, в течение которых они параллельно обслуживали своих клиентов. Хотя ~ 90 000 месяцев могут показаться безумным количеством месяцев (7500 лет), средний tenure составляет 29 месяцев:

 print(df['tenure'].median()) # 29.0 

Измените цвета диаграммы с помощью Plotly

Цвет каждого из вышеупомянутых экземпляров легко изменить на основе любой другой переменной, присутствующей в наборе данных. Чаще всего это другие категориальные признаки, такие как gender или SeniorCitizen .

Группировка экземпляров другой функция создает Сгруппированный Bar Plot, которые наиболее часто нанесено рядом друг с другом. Просто раскрасьте экземпляры на основе другой функции, мы получим диаграмму Stacked Grouped Bar Plot , поскольку у нас будет две или более групп экземпляров одна над другой.

Давайте еще раз взглянем на гистограмму, когда мы раскрасим каждую диаграмму в зависимости от gender :

 import pandas as pd 
 import plotly.express as px 
 
 df = pd.read_csv('telecom_users.csv') 
 
 fig = px.bar(df, x = 'InternetService', y = 'tenure', color='gender') 
 fig.show() 

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

{.ezlazyload}

Поскольку у нас есть несколько строк с одинаковыми x - они, по сути, построены как сгруппированные столбцы.

Если бы мы построили график другой функции, которая не складывается (не является двоичным выбором другой функции), график выглядел бы иначе:

 import pandas as pd 
 import plotly.express as px 
 
 df = pd.read_csv('telecom_users.csv') 
 
 fig = px.bar(df, x='tenure', y='MonthlyCharges', color='tenure') 
 
 fig.show() 

{.ezlazyload}

Предоставляя много значений цвета, например 0..70 через tenure вы увидите красивые градиенты, сформированные на ваших графиках.

Участок сгруппированный гистограмма с Plotly

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

Для этого мы можем просто обновить макет Figure и установить режим barmode на 'group' :

 import pandas as pd 
 import plotly.express as px 
 
 df = pd.read_csv('telecom_users.csv') 
 
 fig = px.bar(df, x = 'InternetService', y = 'tenure', color='gender') 
 fig.update_layout(barmode='group') 
 fig.show() 

Теперь намного проще сравнивать количество экземпляров:

{.ezlazyload}

Постройте горизонтальный график с помощью Plotly

Чтобы построить гистограмму горизонтально с помощью Plotly, мы можем установить аргумент orientation h (в отличие от значения по умолчанию v ) при построении гистограммы:

 import pandas as pd 
 import plotly.express as px 
 
 df = pd.read_csv('telecom_users.csv') 
 
 fig = px.bar(df, x='MonthlyCharges', y='tenure', color='tenure', orientation='h') 
 
 fig.show() 

Имейте в виду, что если вы хотите сохранить отношение XY, как было раньше, вы поменяете аргументы x и y Выполнение этого кода приводит к:

{.ezlazyload}

Заказ гистограмм в Plotly

Plotly автоматически упорядочивает бары. Вы можете напрямую изменить этот параметр, обновив параметры Figure

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

 import pandas as pd 
 import plotly.express as px 
 
 df = pd.read_csv('telecom_users.csv') 
 
 fig = px.bar(df, x='InternetService', y='tenure', color='gender', 
 category_orders={"InternetService": ["DSL", "Fiber optic", "No"], 
 "gender": ["Female", "Male"]}) 
 fig.show() 

Здесь мы заказали InternetService в определенном порядке, который мы установили вручную, а также функцию gender .

Построение гистограммы теперь приведет к:

{.ezlazyload}

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

И то и другое можно упорядочить в порядке ascending или descending . Чтобы упорядочить численно, мы вызываем ключевое слово total category для категориального упорядочивания.

По умолчанию Plotly корректирует порядок на основе предоставленных данных - в нашем случае он упорядочен по total ascending . Давайте изменим это примерно на total descending :

 fig.update_layout(xaxis={'categoryorder':'total descending'}) 

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

{.ezlazyload}

При категорическом заказе сортирует лексикографически:

 fig.update_layout(xaxis={'categoryorder':'category ascending'}) 

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

{.ezlazyload}

Заключение

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

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