Разное

Plotly python: Plotly Python Graphing Library | Python

Содержание

визуализация данных в Python вместе с plotly

Красочное интерактивное отображение датасета в одну строку? Не проблема с plotly! Разбираемся с построением интерактивных графиков и диаграмм.

Если спросить питонистов, какую библиотеку использовать для визуализации данных, то большинство, несомненно, ответят: matplotlib. Ответят, правда, без особого удовольствия. Многое в matplotlib не так уж очевидно и требует не раз обратиться к StackOverflow. Касается это и таких распространенных ситуаций, как создание дополнительных осей или отображение на них дат.

Нужно понимать, что matplotlib создавался задолго до бурного развития Data Science, и в большей мере ориентировался на отображение массивов NumPy и параметрических функций SciPy. В то же время в Data Science распространен обобщающий тип объектов – датасеты, крупные таблицы с данными. В этой статье мы нырнем в работу с альтернативной библиотекой – plotly – и научимся визуализировать множество самых необходимых вещей.

Весь код доступен на GitHub. Интерактивные графики можно (и нужно) смотреть на NBViewer. Приводимые куски кода будут отображать только минимальную часть, необходимую для визуализации данных. Предподготовка данных – в указанных источниках.

Пакет plotly – библиотека с открытым исходным кодом, построенная на plotly.js, которая, в свою очередь, базируется на d3.js. В своих экспериментах с кодом будем использовать обертку над plotly cufflinks. Она упрощает работу с датафреймами pandas. Plotly – это графическая компания, производящая несколько продуктов и инструментов с открытым исходным кодом. Библиотека бесплатна для использования и позволяет создавать неограниченное количество графиков в автономном режиме, а также до 25 диаграмм онлайн.

Вся работа статье была сделана в блокноте Jupyter в связке plotly+cufflinks, которые можно установить стандартным образом с помощью pip:

pip install cufflinks plotly

Соответствующий импорт Python библиотек:

# Стандартное импортирование plotly
import plotly. plotly as py
import plotly.graph_objs as go
from plotly.offline import iplot

# Использование cufflinks в офлайн-режиме
import cufflinks
cufflinks.go_offline()

# Настройка глобальной темы cufflinks
cufflinks.set_config_file(world_readable=True, theme='pearl', offline=True)

Перейдем к примерам.

Построение распределения переменной – стандартный способ начального анализа данных. При помощи plotly легко сделать интерактивное представление гистограмм и прочих распределений. Для тех, кто использовал ранее matplotlib, нужно вместо команды plot просто использовать iplot:

df['claps'].iplot(kind='hist', xTitle='claps',
                  yTitle='count', title='Claps Distribution')

Если мы хотим сравнить распределение двух переменных, можем наложить две гистограммы друг на друга:

df[['time_started', 'time_published']].iplot(
    kind='hist',
    histnorm='percent',
    barmode='overlay',
    xTitle='Time of Day',
    yTitle='(%) of Articles',
    title='Time Started and Time Published')

Проведя некоторые манипуляции в pandas, получаем диаграмму с распределением относительно времени:

df2 = df[['view','reads','published_date']]. \
         set_index('published_date').\
         resample('M').mean()

df2.iplot(kind='bar', xTitle='Date', yTitle='Average',
    title='Monthly Average Views and Reads')

Комбинируя мощь pandas и plotly, легко получать интерактивные сводные диаграммы:

df.pivot(columns='publication', values='fans').iplot(
        kind='box',
        yTitle='fans',
        title='Fans Distribution by Publication')

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

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

tds = df[df['publication'] == 'Towards Data Science'].\
         set_index('published_date')

tds[['claps', 'fans', 'title']].iplot(
    y='claps', mode='lines+markers', secondary_y = 'fans',
    secondary_y_title='Fans', xTitle='Date', yTitle='Claps',
    text='title', title='Fans and Claps over Time')

В одной строке были сделаны сразу несколько вещей:

  • Задание формата оси абсцисс.
  • Создание дополнительной оси ординат, так как исследуемые данные имеют разный масштаб величин (secondary_y = ‘fans’).
  • Добавление заголовков статей к каждой точке, отображаемых при наведении курсора (рассматривается датафрейм публикации статей (text=’title’)).

Чтобы создать к каждой точке текстовые аннотации, используем режим lines+markers+text:

tds_monthly_totals.iplot(
    mode='lines+markers+text',
    text=text,
    y='word_count',
    opacity=0.8,
    xTitle='Date',
    yTitle='Word Count',
    title='Total Word Count by Month')

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

df.pivot_table(
    values='views', index='published_date',
    columns='publication').cumsum().iplot(
        mode='markers+lines',
        size=8,
        symbol=[1, 2, 3, 4, 5],
        layout=dict(
            xaxis=dict(title='Date'),
            yaxis=dict(type='log', title='Total Views'),
            title='Total Views over Time by Publication'))

Совместим данные двух переменных (для рассматриваемого датасета это время чтения и процент прочитанного). Для третьего параметра (тематика статьи) используем цвет:

df.iplot(
    x='read_time',
    y='read_ratio',
    # Specify the category
    categories='publication',
    xTitle='Read Time',
    yTitle='Reading Percent',
    title='Reading Percent vs Read Ratio by Publication')

Если величина меняется в широком диапазоне логично использовать логарифмические оси. В примере ниже представлен код с логарифмической осью абсцисс (команда type=’log’). Третья переменная показывается при помощи размера маркеров (size=’read_ratio’).

tds.iplot(
    x='word_count',
    y='reads',
    size='read_ratio',
    text=text,
    mode='markers',
    layout=dict(
        xaxis=dict(type='log', title='Word Count'),
        yaxis=dict(title='Reads'),
        title='Reads vs Log Word Count Sized by Read Ratio'))

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

Для следующих форм представления данных будем использовать модуль plotly.figure_factory.

Матрица диаграмм рассеяния

Показать взаимосвязь между параметрами поможет матрица диаграмм рассеяния. В качестве диагонального отображения единственной переменной используем гистограммы (diag=’histogram’). Заметим, что и здесь мы можем использовать цвет в качестве дополнительной переменной.

import plotly.figure_factory as ff

figure = ff.create_scatterplotmatrix(
    df[['claps', 'publication', 'views',      
        'read_ratio','word_count']],
    diag='histogram',
    index='publication')

Цветовая карта распределения

Другой способ, удобный для большого количества переменных – цветовая карта распределения величины. Такой подход удобен, например, для корреляционной матрицы параметров датасета df.corr():

corrs = df. corr()

figure = ff.create_annotated_heatmap(
    z=corrs.values,
    x=list(corrs.columns),
    y=list(corrs.index),
    annotation_text=corrs.round(2).values,
    showscale=True)

Приятной особенностью cufflinks является возможность выбора стиля отображения данных с помощью различных тем. Ниже представлены отображения в темах space и ggplot:

Есть возможность визуализации в трехмерном пространстве:

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

Если вы запускали скрипты в Jupyter-блокноте, вы могли заметить небольшую ссылку в правой части графика Export to plot.ly. Нажав на нее, вы перенесетесь в Chart Studio, где можно дополнительно подготовить диаграмму для конечной презентации. Вы можете добавить аннотацию, изменить цвета и пр. Ниже представлены две диаграммы, подготовленные в Chart Studio.

Даже все вышепредставленное не описывает всех возможностей описываемых библиотек. Чтобы увидеть больше красочных примеров, изучите документации plotly и cufflinks.

Итак, что мы имеем:

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

Таким образом, plotly в связке с cufflinks позволяет с минимальными усилиями быстро создавать интерактивное отображение датасетов.

Источник (англ. язык)

Plotly-Python – вопросы и ответы по программированию

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

4 месяца, 2 недели назад

vestland

У меня есть следующий код для создания линейного графика с помощью Plotly. Как я могу установить диапазон оси Y, чтобы он всегда был в [0; 10]? layout = go.Layout( title=go.layout.Title( text=»Test…

4 месяца, 4 недели назад

Tatik

Я пытаюсь адаптировать пример Python Plotly «Добавление ползунков к анимации в Python» к диаграмме, но получаю сообщение «Поле рисунка недопустимо». Я пытаюсь адаптировать входные данные, чтобы они…

1 год, 2 месяца назад

Calum

Поэтому я застрял, пытаясь создать сюжет с несколькими диаграммами Санки. В частности, я продолжаю получать сообщение об ошибке «Недопустимое свойство, указанное для объекта типа plotly.graph_objs….

У меня есть точечная диаграмма, построенная на графике (в частности, в автономном режиме на графике с API-интерфейсом Python на ноутбуке Jupyter), и, как вы знаете, на графике пользователю легко ма…

2 года, 3 месяца назад

Federico S

Привет, я пытаюсь изменить, где мои бары начинаются и останавливаются на гистограмме. Моя цель — иметь бар, который охватывает весь месяц. сейчас мой код: cumulative = go.Bar(y=self.gb[self.y_colum…

Есть ли способ изменить оси на графике рассеяния? скажем, переместите ось от (0,0), т.е. (нулевая линия) к чему-то вроде (3,3) и построите граф квадрантов Я попытался установить значение «zeroline»…

2 года, 1 месяц назад

smith

Я использую запонки и заговор в автономном режиме в режиме Jupyter. Мне нужна помощь в построении графиков временных рядов с рассчитанными доверительными интервалами в виде полос Боллинджера. Если …

2 года, 1 месяц назад

Wynn

Мне нужно изменить сюжетный заголовок в Python, а именно, повернуть его на 90 градусов. Я старался, но безуспешно. Вот мой код import plotly.offline as pyo import plotly.graph_objs as go from plotl…

В документах, представленных на графике , отображается шаблон hovertemplate , обеспечивающий доступ к значениям x & y в тексте, но как мы можем

2 года, 1 месяц назад

blehman

По сути, я хочу знать, как поместить заголовок в пример на URL: https://plot. ly/python/table-subplots/ в разделе: Таблицы и правые совмещенные участки Есть три диаграммы и одна таблица, как мне доб…

2 года, 2 месяца назад

Mike

У меня есть два графика, которые я хочу показать, используя plotly updatemenus . Я могу заполнять и отображать данные, используя функцию updatemenus . Однако, когда график загружается, оба графика …

У меня есть рамка панд с матрицей расстояний, я использую PCA для уменьшения яркости. Кадр данных этой матрицы расстояний имеет метку для каждой точки и размер. Как сделать так, чтобы каждая рассея. ..

2 года, 1 месяц назад

Jay Qadan

У меня есть значения для каждого из треугольных элементов в сетке, а не вершин. Я знаю, что трассировка mesh4d не позволяет вам напрямую создавать цветную полосу из лицевых красок, но есть ли спосо…

2 года, 1 месяц назад

M. Baum

Я хочу создать график с леденцом на палочке с несколькими горизонтальными отрезками, например: https://python-graph-gallery. com/184-lollipop-plot-with-2-group . Я хотел бы использовать заговор, так…

opensofty | Python Plotly Tutorial

Plotly — аналитическая компания, известная разработчиками инструментов анализа, статистики и построения графиков в реальном времени для веб-приложений и автономных скриптов Python. В этом уроке мы рассмотрим основные примеры с помощью Plotly и создадим простые и интуитивно понятные графы данных временных рядов, которые будут на 100% интерактивными по своей природе и в то же время простыми для проектирования. Эти графики можно использовать в презентациях, поскольку они полностью интерактивны и готовы к игре.

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

  • Сохраняйте графики для автономного использования в качестве векторной графики, которые оптимизированы для печати и публикации
  • Экспортируемые диаграммы представлены в формате JSON, а не в формате изображения. Этот JSON можно легко загрузить в другие инструменты визуализации, такие как Tableau, или манипулировать им с помощью Python или R.
  • Поскольку экспортируемые графики по своей природе являются JSON, эти диаграммы практически легко внедрить в веб-приложение.
  • Plotly — хорошая альтернатива Matplotlib для визуализации

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

Установка Plotly

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

python -m virtualenv plotly
source numpy/bin/activate

Когда виртуальная среда активна, вы можете установить библиотеку Plotly в виртуальной среде, чтобы можно было выполнить следующие примеры:

Мы будем использовать Anaconda и Jupyter в этом уроке. Если вы хотите установить его на свой компьютер, посмотрите урок, который описывает « Как установить Anaconda Python на Ubuntu 18.04 LTS », и поделитесь своим мнением, если у вас возникнут какие-либо проблемы. Чтобы установить Plotly с Anaconda, используйте следующую команду в терминале от Anaconda:

conda install -c plotly plotly

Мы видим что-то подобное, когда выполняем указанную выше команду:

После того, как все необходимые пакеты установлены и готовы, мы можем начать использовать библиотеку Plotly со следующим оператором импорта:

После того, как вы создали учетную запись на Plotly, вам понадобятся две вещи — имя пользователя учетной записи и ключ API. Для каждой учетной записи может быть только один ключ API. Так что держите его где-нибудь в безопасности, как если бы вы его потеряли, вам придется заново создать ключ, и все старые приложения, использующие старый ключ, перестанут работать.

Во всех написанных вами программах на Python укажите учетные данные, чтобы начать работать с Plotly:

plotly. tools.set_credentials_file(username = ‘username’, api_key = ‘your-api-key’)

Давайте начнем с этой библиотеки сейчас.

Начало работы с Plotly

Мы будем использовать следующие импорты в нашей программе:

import pandas as pd
import numpy as np
import scipy as sp
import plotly.plotly as py

Мы используем:

  • Панды для эффективного чтения файлов CSV
  • NumPy для простых табличных операций
  • Scipy для научных расчетов
  • Сюжет для визуализации

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

import pandas as pd
import numpy as np
import scipy as sp
import plotly
plotly.offline.init_notebook_mode(connected=True)
import plotly.offline as py

Вы можете выполнить следующую инструкцию для проверки установки Plotly:

print(plotly. __version__)

Мы видим что-то подобное, когда выполняем указанную выше команду:

Наконец, мы загрузим набор данных с помощью Pandas и представим его в виде таблицы:

import plotly.figure_factory as ff
df = pd.read_csv(«https://raw.githubusercontent.com/plotly/datasets/master/school_
earnings.csv»)
table = ff.create_table(df)
py.iplot(table, filename=’table’)

Мы видим что-то подобное, когда выполняем указанную выше команду:

Теперь давайте построим гистограмму для визуализации данных:

import plotly.graph_objs as go
data = [go.Bar(x=df.School, y=df.Women)]
py.iplot(data, filename=’women-bar’)

Мы видим что-то вроде этого, когда выполняем приведенный выше фрагмент кода:

Когда вы увидите график выше с блокнотом Jupyter, вам будут предложены различные варианты увеличения / уменьшения масштаба в определенном разделе графика, выбора Box & Lasso и многое другое.

Сгруппированные гистограммы

Несколько графиков гистограммы могут быть сгруппированы вместе для целей сравнения очень легко с Plotly. Давайте для этого воспользуемся одним и тем же набором данных и покажем различия в представленности мужчин и женщин в университетах:

women = go.Bar(x=df.School, y=df.Women)
men = go.Bar(x=df.School, y=df.Men)

data = [men, women]
layout = go.Layout(barmode = «group»)
fig = go.Figure(data = data, layout = layout)
py.iplot(fig)

Мы видим что-то вроде этого, когда выполняем приведенный выше фрагмент кода:

Хотя это выглядит хорошо, надписи в правом верхнем углу не верны! Давайте исправим их:

women = go.Bar(x=df.School, y=df.Women, name = «Women»)
men = go.Bar(x=df.School, y=df.Men, name = «Men»)

График выглядит гораздо более наглядным:

Давайте попробуем изменить бармод:

layout = go.Layout(barmode = «relative»)
fig = go.Figure(data = data, layout = layout)
py.iplot(fig)

Мы видим что-то вроде этого, когда выполняем приведенный выше фрагмент кода:

Круговые диаграммы с Plotly

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

trace = go.Pie(labels = df.School, values = df.Women)
py.iplot([trace], filename=’pie’)

Мы видим что-то вроде этого, когда выполняем приведенный выше фрагмент кода:

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

Визуализация данных временных рядов с помощью Plotly

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

В этом примере мы будем использовать отдельный набор данных в том же репозитории GitHub, так как более ранние данные специально не включали данные с метками времени. Как и здесь, мы будем строить график изменения рыночной доли Apple с течением времени:

financial = pd.read_csv(«https://raw.githubusercontent.com/plotly/datasets/master/
finance-charts-apple.csv»)
data = [go.Scatter(x=financial.Date, y=financial[‘AAPL.Close’])]
py.iplot(data)

Мы видим что-то вроде этого, когда выполняем приведенный выше фрагмент кода:

Когда вы наводите указатель мыши на линию изменения графика, вы можете указать конкретные детали точки:

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

OHLC Chart

Диаграмма OHLC (Open High Low Close) используется, чтобы показать изменение объекта за промежуток времени. Это легко построить с помощью PyPlot:

from datetime import datetime

open_data = [33.0, 35.3, 33.5, 33.0, 34.1]
high_data = [33.1, 36.3, 33.6, 33.2, 34.8]
low_data = [32.7, 32.7, 32.8, 32.6, 32.8]
close_data = [33.0, 32.9, 33.3, 33.1, 33.1]

dates = [datetime(year=2013, month=10, day=10),
datetime(year=2013, month=11, day=10),
datetime(year=2013, month=12, day=10),
datetime(year=2014, month=1, day=10),
datetime(year=2014, month=2, day=10)]

trace = go.Ohlc(x=dates,
open=open_data,
high=high_data,
low=low_data,
close=close_data)
data = [trace]

py.iplot(data)

Здесь мы предоставили некоторые примерные точки данных, которые можно вывести следующим образом:

  • Открытые данные описывают курс акций при открытии рынка
  • Высокие данные описывают самый высокий уровень запасов, достигнутый за данный период времени.
  • Низкие данные описывают самый низкий уровень запасов, достигнутый за данный период времени.
  • Данные закрытия описывают курс закрытия запасов, когда заданный интервал времени истек

Теперь давайте запустим фрагмент кода, который мы предоставили выше. Мы видим что-то вроде этого, когда выполняем приведенный выше фрагмент кода:

Это отличное сравнение того, как установить временное сравнение объекта с его собственным и сравнить его с высокими и низкими достижениями.

Вывод

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

Найдите весь исходный код, использованный в этом уроке, на Github . Пожалуйста, поделитесь своими отзывами об уроке в Твиттере с @sbmaggarwal и @LinuxHint .

Качественно новый уровень визуализации данных в Python

Рассказывает Уилл Кёрсен, data scientist в Cortex Intel


Нам сложно отказываться от дел, на которые мы уже потратили много времени. Поэтому мы остаёмся на нелюбимой работе, вкладываемся в проекты, которые точно не «взлетят». А ещё продолжаем пользоваться утомительной библиотекой matplotlib для построения графиков, когда есть более эффективные и привлекательные альтернативы.

За последние несколько месяцев я осознал, что единственная причина, по которой я пользуюсь matplotlib, заключается в том, что я потратил сотни часов на изучение её запутанного синтаксиса. Из-за неё я жил на StackOverflow, пытаясь найти ответ на тот или иной вопрос. К счастью, для создания графиков на Python настали светлые времена, и после изучения доступных вариантов я выбрал явного победителя (с точки зрения простоты использования, документации и функциональности) в лице библиотеки plotly. В этой статье мы с ней познакомимся и научимся делать более качественные графики за меньшее время — зачастую с помощью одной строки кода.

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

Пример графиков plotly (источник)

Обзор plotly

Пакет plotly для Python — это open-source библиотека, основанная на plotly.js, которая, в свою очередь, основана на d3.js. Мы будем использовать обёртку для plotly под названием cufflinks, написанную для работы с DataFrame’ами Pandas.

Вообще, Plotly — это графическая компания с несколькими продуктами и open-source инструментами. Библиотека на Python бесплатна для использования, и мы можем создавать графики без ограничений в офлайн-режиме плюс до 25 графиков в онлайн-режиме.

Весь код из этой статьи был написан в Jupyter Notebook с plotly + cufflinks, запущенными в офлайн-режиме. После установки plotly и cufflinks с помощью pip install cufflinks plotly добавьте следующие импорты в блокнот Jupyter:

# Стандартные импорты plotly
import plotly.plotly as py
import plotly.graph_obs as go
from plotly.offline import iplot
import cufflinks
cufflinks.go_offline()
# Устанавливаем глобальную тему 
cf.set_config_file(world_readable=True, theme='pearl', offline=True)

Гистограммы и бочки с усами

Графики по одной переменной — стандартный способ начать анализ, а гистограмма — надёжный выбор (хоть и не без изъянов) для отображения распределения. Давайте нарисуем интерактивную гистограмму количества лайков, используя статистику моих постов на Medium (df это обычный DataFrame):

df['claps'].iplot(kind='hist', xTitle='claps',
                  yTitle='count', title='Claps Distribution')

Интерактивная гистограмма, созданная с помощью plotly + cufflinks

Если вы работали с matplotlib, то вы заметили, что нам пришлось добавить всего одну букву (iplot() вместо plot()), чтобы получить гораздо более красивый и интерактивный график! Можно кликнуть на данные для получения подробностей, приблизить части графика и, как мы потом увидим, выбирать отдельные категории для просмотра.

А вот так можно построить наложенные друг на друга гистограммы:

df[['time_started', 'time_published']].iplot(
    kind='hist',
    histnorm='percent',
    barmode='overlay',
    xTitle='Time of Day',
    yTitle='(%) of Articles',
    title='Time Started and Time Published')

Немного поколдовав с pandas, получим столбчатую диаграмму:

# Создаём DataFrame с месячной частотой и строим график
df2 = df[['view','reads','published_date']].\
         set_index('published_date').\
         resample('M').mean()
df2.iplot(kind='bar', xTitle='Date', yTitle='Average',
    title='Monthly Average Views and Reads')

Как видите, мы можем совмещать возможности pandas и plotly + cufflinks. Для графика «ящик с усами», который показывает количество лайкнувших каждый пост, мы сначала используем pivot(), а затем строим график:

df.pivot(columns='publication', values='fans').iplot(
        kind='box',
        yTitle='fans',
        title='Fans Distribution by Publication')

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

Диаграмма рассеяния

Это, наверное, наиболее часто используемая диаграмма при анализе данных. Она позволяет увидеть изменение переменной с течением времени или отношение между двумя (или более) переменными.

Временные ряды

В значительной части данных содержится информация о времени. К счастью, plotly + cufflinks были разработаны с расчётом на визуализацию временных рядов. Создадим DataFrame с моими статьями и посмотрим, как менялись тренды.

# Создаём DataFrame со статьями Towards Data Science
tds = df[df['publication'] == 'Towards Data Science'].\
         set_index('published_date')
# Строим продолжительность чтения как временной ряд
tds[['claps', 'fans', 'title']].iplot(
    y='claps', mode='lines+markers', secondary_y = 'fans',
    secondary_y_title='Fans', xTitle='Date', yTitle='Claps',
    text='title', title='Fans and Claps over Time')

Здесь мы в одну строку делаем сразу несколько разных вещей:

  • Автоматически получаем красиво отформатированную ось X;
  • Добавляем дополнительную ось Y, так как у переменных разные диапазоны;
  • Добавляем заголовки статей, которые высвечиваются при наведении курсора.

Для большей наглядности можно легко добавить текстовые аннотации:

tds_monthly_totals.iplot(
    mode='lines+markers+text',
    text=text,
    y='word_count',
    opacity=0.8,
    xTitle='Date',
    yTitle='Word Count',
    title='Total Word Count by Month')

Диаграмма рассеяния с аннотациями

А вот так можно создать точечную диаграмму с двумя переменными, окрашенными согласно третьей категориальной переменной:

df.iplot(
    x='read_time',
    y='read_ratio',
    # Указываем категорию
    categories='publication',
    xTitle='Read Time',
    yTitle='Reading Percent',
    title='Reading Percent vs Read Ratio by Publication')

Сделаем график немного более сложным, используя логарифмическую ось (настраивается через аргумент layout, подробнее в документации) и установив размер пузырьков в соответствии с числовой переменной:

tds.iplot(
    x='word_count',
    y='reads',
    size='read_ratio',
    text=text,
    mode='markers',
    # Log xaxis
    layout=dict(
        xaxis=dict(type='log', title='Word Count'),
        yaxis=dict(title='Reads'),
        title='Reads vs Log Word Count Sized by Read Ratio'))

Если захотеть (подробности в блокноте), то можно уместить даже 4 переменные (не советую) на одном графике!

Как и раньше, мы совмещаем возможности pandas и plotly + cufflinks для получения полезных графиков:

df.pivot_table(
    values='views', index='published_date',
    columns='publication').cumsum().iplot(
        mode='markers+lines',
        size=8,
        symbol=[1, 2, 3, 4, 5],
        layout=dict(
            xaxis=dict(title='Date'),
            yaxis=dict(type='log', title='Total Views'),
            title='Total Views over Time by Publication'))

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

Продвинутые графики

Теперь познакомимся с несколькими графиками, которые используются не так часто, но могут выглядеть довольно впечатляюще. Мы воспользуемся plotly.figure_factory(), чтобы даже эти невероятные графики создавать в одну строку.

Матрица рассеяния

Матрица рассеяния — отличный выбор, если нам нужно изучить отношения между многими переменными:

import plotly.figure_factory as ff
figure = ff.create_scatterplotmatrix(
    df[['claps', 'publication', 'views',      
        'read_ratio','word_count']],
    diag='histogram',
    index='publication')

Даже этот график полностью интерактивен, что позволяет нам исследовать данные.

Корреляционная тепловая карта

Чтобы отобразить взаимосвязи между числовыми переменными, сначала посчитаем коэффициенты корреляции, а затем создадим аннотированную тепловую карту:

corrs = df.corr()
figure = ff.create_annotated_heatmap(
    z=corrs.values,
    x=list(corrs.columns),
    y=list(corrs.index),
    annotation_text=corrs.round(2).values,
    showscale=True)

Cufflinks также предлагает несколько тем, которые можно использовать для получения совершенно другого стиля, не прилагая усилий. Например, ниже можно увидеть графики с темами «space» и «ggplot»

Не 2D единым:

Ну и куда без круговой диаграммы?

Редактирование в Plotly Chart Studio

В процессе создания этих графиков в блокноте можно заметить маленькую ссылку в правом нижнем углу, которая гласит «Export to plot.ly». После перехода по ней вы попадёте в редактор графиков, где вы можете внести финальные штрихи в график перед презентацией графика. Вы можете добавить аннотации, выбрать цвета и в целом сделать из графика конфетку. Затем можно опубликовать график и поделиться ссылкой на него.

Ниже показаны два графика, которые я подправил в Chart Studio:

Мы упомянули много всего, однако мы всё ещё не раскрыли весь потенциал библиотеки! Настоятельно рекомендую заглянуть в документацию plotly и cufflinks, чтобы увидеть ещё более потрясающие графики:

Интерактивный график ветряных мельниц в США (источник)

Заключение

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

  1. Быстрое построение графиков в одну строку.
  2. Интерактивные элементы для получения более узкой выборки.
  3. Возможность углубиться в детали при необходимости.
  4. Простая настройка для конечной презентации.

На данный момент лучше всего для этих целей в Python подходит plotly. Plotly позволяет быстро визуализировать данные и благодаря интерактивности помогает лучше в них разобраться. И давайте начистоту — визуализация должна быть одной из самых приятных частей data science! С использованием других библиотек построение графиков превращалось в утомительное занятие, однако plotly возвращает радость от этого дела.

Смотрите также: Основы статистики с Python

Перевод статьи «The Next Level of Data Visualization in Python»

Построение данных онлайн через Plotly и Python

В своей работе я не слишком много заговариваю , но недавно я узнал о веб-сайте под названием Plotly, который предоставляет услуги печати для чьих-либо данных. У них даже есть сюжетный пакет для Python (среди прочих)! Поэтому в этой статье мы будем учиться строить с их пакетом. Давайте повеселимся, делая графики!

Начиная

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

 pip install plotly

Теперь, когда он установлен, вам нужно зайти на сайт Plotly и создать бесплатную учетную запись. Как только это будет сделано, вы получите ключ API. Чтобы упростить задачу, вы можете использовать свое имя пользователя и ключ API для создания файла учетных данных. Вот как это сделать:

import plotly.tools as tls
 
tls.set_credentials_file(
        username="your_username", 
        api_key="your_api_key")
 
# to get your credentials
credentials = tls.get_credentials_file()

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

import plotly.plotly as py
py.sign_in('your_username','your_api_key')

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

Создание Графа

Похоже, Plotly по умолчанию использует Scatter Plot, поэтому мы начнем с этого. Я решил получить некоторые данные с сайта переписи . Вы можете скачать данные о населении любого штата США, а также другие данные. В этом случае я скачал файл CSV, в котором содержалось население каждого округа в штате Айова. Давайте взглянем:

import csv
import plotly.plotly as py
 
#----------------------------------------------------------------------
def plot_counties(csv_path):
    """

http://census.ire.org/data/bulkdata.html

    """
    counties = {}
    county = []
    pop = []
 
    counter = 0
    with open(csv_path) as csv_handler:
        reader = csv.reader(csv_handler)
        for row in reader:
            if counter  == 0:
                counter += 1
                continue
            county.append(row[8])
            pop.append(row[9])
 
    trace = dict(x=county, y=pop)
    data = [trace]
    py.plot(data, filename='ia_county_populations')
 
if __name__ == '__main__':
    csv_path = 'ia_county_pop.csv'
    plot_counties(csv_path)

Если вы запустите этот код, вы должны увидеть график, который выглядит следующим образом:

Вы также можете посмотреть график здесь . В любом случае, как вы можете видеть в приведенном выше коде, все, что я сделал, это прочитал файл CSV и извлек название округа и население. Затем я помещаю эти данные в два разных списка Python. Наконец, я создал словарь этих списков, а затем обернул этот словарь в список. Таким образом, вы получите список, содержащий словарь, содержащий два списка! Чтобы создать график рассеяния, я передал данные в метод построения графика .

Преобразование в гистограмму

Теперь давайте посмотрим, сможем ли мы изменить ScatterPlot на гистограмму. Прежде всего, мы поиграемся с данными сюжета. Следующее было сделано через интерпретатор Python:

>>> scatter = py.get_figure('driscollis', '0')
>>> print scatter.to_string()
Figure(
    data=Data([
        Scatter(
            x=[u'Adair County', u'Adams County', u'Allamakee County', u'..', ],
            y=[u'7682', u'4029', u'14330', u'12887', u'6119', u'26076', '..'  ]
        )
    ])
)

Это показывает, как мы можем получить рисунок, используя имя пользователя и уникальный номер графика. Затем мы распечатали структуру данных. Вы заметите, что он не распечатывает всю структуру данных. Теперь давайте сделаем фактическое преобразование в гистограмму:

from plotly.graph_objs import Data, Figure, Layout
 
scatter_data = scatter.get_data()
trace_bar = Bar(scatter_data[0])
data = Data([trace_bar])
layout = Layout(title="IA County Populations")
fig = Figure(data=data, layout=layout)
py.plot(fig, filename='bar_ia_county_pop')

Это создаст гистограмму по следующему URL: https://plot.ly/~driscollis/1 . Вот изображение графика:

Этот код немного отличается от кода, который мы использовали изначально. В этом случае мы явно создали объект Bar и передали ему данные графика рассеяния. Затем мы помещаем эти данные в объект данных . Затем мы создали объект Layout и дали нашему графику заголовок. Затем мы создали объект Figure с использованием объектов данных и макета. Наконец мы построили гистограмму.

Сохранение графика на диск

Plotly также позволяет сохранить график на жестком диске. Вы можете сохранить его в следующих форматах: png, svg, jpeg и pdf. Предполагая, что у вас все еще есть объект Figure из предыдущего примера, вы можете сделать следующее:

py.image.save_as(fig, filename='graph.png')

Если вы хотите сохранить, используя один из других форматов, просто используйте расширение этого формата в имени файла.

Завершение

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

Дополнительное Чтение

Dash checklist plotly

Dash checklist plotly

Notice, how we added two tuples to get one loosely dashed line and one dotted line. For more, line styles see the Matplotlib documentation. Changing the line types of a Seaborn line plot may be…

«»» Solution to exercise #1 on Week 11 «»» import dash import dash_core_components as dcc import dash_html_components as html from dash.dependencies import Input …

Mar 08, 2018 · Additionally, I aim to add either a button or another Checklist to reset the list to the default suggestions, but prior to this I have to fix the first issue. It makes sense because the graph presents the sales of ~50 products, but 10 out of 50 represents 95% of the sales. So, by default, I want to show the sales figures for these 10 products.

Dash from Plotly is gaining popularity among data scientists for creating richly functional analytics applications in Python. Dash augments Python data libraries much like Shiny sits on top of R. These applications are sometimes referred to as dashboards, but the range of possible functionality is really much greater than the term implies.

Dropdowns. Toggle contextual overlays for displaying lists of links and more with the Bootstrap dropdown plugin. Overview. Dropdowns are toggleable, contextual overlays for displaying lists of links and more.

Mar 08, 2018 · Additionally, I aim to add either a button or another Checklist to reset the list to the default suggestions, but prior to this I have to fix the first issue. It makes sense because the graph presents the sales of ~50 products, but 10 out of 50 represents 95% of the sales. So, by default, I want to show the sales figures for these 10 products.

dash daq, DISPLAY DIMMER/DISPLAY BRIGHTNESS The DashDAQ has a built in light sensor that adjusts the screen brightness according to its surroundings. DashDAQ comes setup to automatically change the brightness of the screen; however, the automatic dimmer can be turned off or set to a specific brightness level.

plotly.py(plotly Python library) 一个开源的、交互式的、基于浏览器的 Python 图形库

Pso2 veteranpercent27s resolve

Dash یک چارچوب پایتون برای ساخت برنامه‌های کاربردی وب است. این چارچوب بر فراز «فلسک» (Flask)، «پلاتلی دات جی‌اس» (Plotly.js)، «ری‌اکت» (React) و «ری‌اکت جی‌اس» (React Js) ارائه شده است. این چارچوب به کاربران … Dash tabulator is a Dash / Plotly component providing Tabulator capabilities. This is not a fully comprehensive implementation of Tabulator just the basics necessary to get the application working. Under the covers this uses react-tabulator. This is built on the shoulders of the Dash Plotly team, the Tabulator team, and the React Tabulator team.

Dj competition vibration song mp3 download 2020

Awesome Coronavirus . Huge collection of useful projects and resources for COVID-19 (2019 novel Coronavirus) COVID-19 (2019 novel Coronavirus) is a current epidemic as of today.

KPI DASHBOARD is an irreplaceable tool for any business manager.By collecting, grouping, organizing, and visualizing the company’s important metrics, it provides a quick overview of the company’s performance, well-being, and expected growth.

In this #plotly #dash tutorial video I have talked about how you can create checkbox in plotly dash for allowing user the select an option. #PloltyDash #Dash… The master branch is auto-deployed to dash.plotly.com. Once you have merged your PR, wait 5-10 minutes and check dash.plotly.com to verify that your changes have been made. [x] I understand; If this PR documents a new feature of Dash: [ ] Comment on the original Dash issue with a link to the new docs.

B15 inyectable

In HTML coding, the non-breaking space is a character entity which can: create white space between words or web page elements; stop the browser from breaking a line in the wrong place.

How to Draw 3D Charts with Matplotlib. Plotly Python Tutorial. Basics of Graphing Streaming Big Data. Enabling the Citizen Data Scientists.

# pip install dash==1.8.0 import dash import dash_html_components as html import dash_core_components as dcc import dash_table from dash.dependencies import Input, Output, State # pip install dash_bootstrap_components import dash_bootstrap_components as dbc # pip install plotly_express import plotly_express as px # pip install sd_material_ui … pip install dash==0.22.0 # The core dash backend pip install dash-renderer==0.13.0 # The dash front-end pip install dash-html-components==0.11.0 # HTML components pip install dash-core-components==0.26.0 # Supercharged components pip install plotly —upgrade # Plotly graphing library used in examples. これは書いてある通りに実行。

Revenant apex 3d model

Official examples and reference documentation for dcc.Dropdown. dcc.Dropdown is a dash_core_components component.

Apr 11, 2015 · conda-forge. Organization created on Apr 11, 2015. https://conda-forge.org; A community led collection of recipes, build infrastructure and distributions for the conda package manager.

Aug 14, 2014 · 4: Google Charts. Google Charts (Figure D) is an HTML5-based API offering a variety of chart types — pie, bar, line, tree map, and many others — with a wide array of customizable attributes … Созданный на основе Plotly.js, React и Flask, Dash связывает современные элементы пользовательского …

Quadratic equation test with answers

Live theme selector. If you want to quickly test out different themes with an application, you can simply add themeSelector() somewhere to the UI. This will add a select box which lets you choose the theme.

这里说一下dash,dash是基于plotly制作的库,用于制作精美图表,特别是动态图表,实现数据呈现: … [ html.Div([ dcc.Checklist …

Dec 22, 2017 · Oh I should close this… we changed to Checklist.value in #558 that was released with Dash v1.0 — what version are you using? Also we removed the MutableMapping inheritance in plotly/dash#753 alexcjohnson closed this Sep 17, 2019 私はデータを分析するのと同じくらい共有して視覚化するのが大好きなので、最終的にDashを学ぶための言い訳を与えてくれる仕事中のプロジェクトに熱心でした。Dashは、Flask、Plotlyの上に記述されたPythonのフレームワークです。

Apush past frq

Example Explained. The .dropdown class indicates a dropdown menu.. To open the dropdown menu, use a button or a link with a class of .dropdown-toggle and the data-toggle=»dropdown» attribute.

Dec 01, 2020 · Alex is a freelance writer with more than 10 years of experience in design, development, and small business. His work has been featured in publications like Entrepreneur, Huffington Post, TheNextWeb, and others.

Plotly develops Dash and also offers a platform for deploying Dash in an enterprise environment with premium pricing plans. Dash makes it very easy to create compound apps that have a variety of interactive elements. Key features and benefits: Interactive graphing and cross-filtering. Dash apps are made interactive through Dash Callbacks. A content delivery network is a highly distributed server platform optimized for delivering content, including web applications and streaming media content.

Where is the fairy in skyblock

Try our free checklist maker tool, or discover and use our free checklist templates, published by thousands of A free checklist maker to organize your mind. Create recurring team processes.

Nov 03, 2019 · Popular labels from issues and pull requests on open source GitHub repositories — Pulled from https://libraries.io — labels.md

Basically, I have a checklist, and each value of the checklist represents a study. I have a 3-d graph generated, and it by default includes all the studies found in my database (derived from excel) dv.As it turns out, values is a method of collections(.abc).MutableMapping, so if you don’t provide a value for it, it keeps the original; but then since it matches an attribute name we try to serialize the method into the layout and it fails.

Github rc_esc library zip

Plotly is a Python library which is used to design graphs, especially interactive graphs. It can plot various graphs and charts like histogram, barplot, boxplot, spreadplot and many more.

Just came to Dash forum for the same reason. In my case, I’m using a dcc.Interval component. My guess is that each time a callback, having the dcc.components as Input, is fired my layout is set back to initial state, even if it automatically reach a preventUpdate… here is a reproductible exemple:

Dash的图形组件使用plotly.js对图形进行渲染,Plotly.js与Dash配合默契,它使用声明式编程模式,开源且速度快,还支持科技计算、金融、商务类的各种视图。

Seagate backup plus desktop drive 5tb

Nordictrack x22i incline calibration

Symantec endpoint protection password reset

86 china manufacturers and suppliers of medical tools mail yahoo com hotmail com

Minecraft bomb mod 1.12 2

How to install headshot plugin

Dachshund puppies for sale near memphis tn

Harris funeral home petersburg in

Is pentanol polar

Pfsense vlan on lan interface

Generalized bedrock geology of new york state worksheet

Teradata export to csv

Dell latitude power rail failure

Praying an hour a day

Bootleg sonic games online

Sodastream bottle stuck in machine

Foam hand soap dispenser bottle

Blog cewe pakai leging memek tembem

Song lyrics i need you lynyrd skynyrd

C3 corvette transmission pan torque specs

Начало работы с Plotly | Python

См. Отображение фигур в Python для получения дополнительной информации о среде визуализации и см. Plotly FigureWidget Overview для получения дополнительной информации об использовании FigureWidget .

Экспорт статических изображений¶

plotly.py поддерживает экспорт статических изображений,
используя либо kaleido
пакет (рекомендуется, поддерживается с plotly версии 4.9) или orca
Утилита командной строки (унаследованная от plotly версии 4.9).

Kaleido¶

Пакет kaleido не имеет зависимостей и может быть установлен
используя pip …

  $ установка пункта -U kaleido  

или conda.

  $ conda install -c plotly python-kaleido  
Orca¶

В то время как Kaleido теперь является рекомендуемым методом экспорта изображений, потому что его проще установить
и более широко совместимый экспорт статических изображений
также может поддерживаться
с помощью устаревшей утилиты командной строки orca и
psutil Пакет Python.

Эти зависимости могут быть установлены с помощью conda:

  conda install -c plotly plotly-orca == 1.3.1 psutil  

Или psutil можно установить с помощью pip …

  pip install psutil  

и orca можно установить согласно инструкциям в README orca.

Extended Geo Support¶

Некоторые функции plotly.py полагаются на довольно большие географические файлы форм. Страна
Фабрика хороплетных фигур — один из таких примеров.Эти шейп-файлы распространяются как
отдельный пакет plotly-geo . Этот пакет можно установить с помощью pip …

  $ pip install plotly-geo == 1.0.0  

или conda.

  $ conda install -c plotly plotly-geo = 1.0.0  

См. Карты хороплетов графства США в Python для получения дополнительной информации о фабрике хороплетных фигур графств.

Chart Studio Support¶

Пакет chart-studio может использоваться для загрузки графических изображений в Plotly’s Chart
Studio Cloud или локальные сервисы.Этот пакет можно установить с помощью pip …

  $ pip install chart-studio == 1.1.0  

или conda.

  $ conda install -c plotly chart-studio = 1.1.0  

Примечание: Этот пакет является необязательным, и, если он не установлен, невозможно загрузить цифры в облачную службу Chart Studio.

Куда дальше? ¶

После установки вы можете использовать нашу документацию тремя основными способами:

  1. Вы сразу переходите к примерам создания базовых диаграмм, статистических диаграмм, научных диаграмм, финансовых диаграмм, карт и трехмерных диаграмм.
  2. Если вы предпочитаете сначала изучить основы библиотеки, вы можете прочитать о структуре фигур, о том, как создавать и обновлять фигуры, как отображать фигуры, как тематизировать фигуры с помощью шаблонов, как экспортировать фигуры в различные форматы и о Plotly Express, высокоуровневом API для выполнения всего вышеперечисленного.
  3. Вы можете ознакомиться с нашими исчерпывающими справочными руководствами по : справочник по Python API или справочник по рисунку

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

Мы также рекомендуем вам присоединиться к форуму сообщества Plotly, если вам нужна помощь в чем-либо, связанном с plotly .

plotly / plotly.py: интерактивная библиотека для построения графиков для Python (включая Plotly Express)

Последняя версия
Форум пользователей
Загрузки PyPI
Лицензия

Рабочие области Data Science

Мы рекомендуем IDE для графической библиотеки Python Plotly — Dash Enterprise’s Data Science Workspaces, в которой есть как записная книжка Jupyter, так и поддержка файлов кода Python.

Краткое руководство

pip install plotly == 4.14.3

Внутри Jupyter (устанавливается с помощью pip install "jupyterlab> = 3" "ipywidgets> = 7.6" ):

 импортировать plotly.graph_objects на ходу
fig = go.Figure ()
fig.add_trace (go.Scatter (y = [2, 1, 4, 3]))
fig.add_trace (go.Bar (y = [1, 4, 3, 2]))
fig.update_layout (title = 'Привет, рисунок')
fig.show () 

Дополнительные примеры см. В документации Python.

Читайте о новинках в plotly.py v4

Обзор

plotly.py — это интерактивная библиотека для построения графиков с открытым исходным кодом и браузером для Python ✨

Построенный на основе plotly.js, plotly.py — это декларативная библиотека диаграмм высокого уровня. plotly.js поставляется с более чем 30 типами диаграмм, включая научные диаграммы, 3D-графики, статистические диаграммы, карты SVG, финансовые диаграммы и многое другое.

plotly.py имеет лицензию MIT. Графики можно просматривать в записных книжках Jupyter, автономных файлах HTML или размещать в Интернете с помощью Chart Studio Cloud.

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



Установка

plotly.py можно установить с помощью pip …

  pip install plotly == 4.14.3
  

или conda.

  conda install -c plotly plotly = 4.14.3
  

Поддержка JupyterLab

Для использования в JupyterLab установите jupyterlab и ipywidgets
пакеты с использованием пункта :

  pip install jupyterlab> = 3 "ipywidgets> = 7.6 дюймов
  

или конда :

  conda установить jupyterlab> = 3 "ipywidgets> = 7.6"
  

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

  # Базовая поддержка модуля рендеринга JupyterLab
jupyter labextension установить [email protected]

# ДОПОЛНИТЕЛЬНО: расширение виджетов Jupyter для поддержки FigureWidget
jupyter labextension install @ jupyter-widgets / jupyterlab-manager plotlywidget @ 4.14,3
  

Пожалуйста, ознакомьтесь с нашим руководством по устранению неполадок, если у вас возникнут проблемы с JupyterLab.

Поддержка ноутбуков Jupyter

Для использования в Jupyter Notebook установите ноутбук и ipywidgets
пакеты с использованием пункта :

  pip install "notebook> = 5.3" "ipywidgets> = 7.5"
  

или конда :

  conda install "notebook> = 5.3" "ipywidgets> = 7.5"
  

Экспорт статического изображения

сюжетно.py поддерживает экспорт статических изображений,
используя либо kaleido
пакет (рекомендуется, поддерживается с plotly версии 4.9) или orca
Утилита командной строки (унаследованная от plotly версии 4.9).

Калейдо

Пакет kaleido не имеет зависимостей и может быть установлен
используя pip …

или conda.

  $ conda install -c conda-forge python-kaleido
  
Орка

В то время как Kaleido теперь является рекомендуемым подходом к экспорту изображений, потому что его проще установить
и более широко совместимый экспорт статических изображений
также может поддерживаться
с помощью устаревшей утилиты командной строки orca и
psutil Пакет Python.

Эти зависимости могут быть установлены с помощью conda:

  conda install -c plotly plotly-orca == 1.3.1 psutil
  

Или psutil можно установить с помощью pip …

и orca можно установить согласно инструкциям в README orca.

Расширенная поддержка гео

Некоторые функции plotly.py полагаются на довольно большие географические шейп-файлы. Страна
Фабрика хороплетных фигур — один из таких примеров. Эти шейп-файлы распространяются как
отдельный пакет plotly-geo .Этот пакет можно установить с помощью pip …

  pip install plotly-geo == 1.0.0
  

или conda

  conda install -c plotly plotly-geo = 1.0.0
  

Поддержка Chart Studio

Пакет chart-studio можно использовать для загрузки графических фигур в Plotly’s Chart.
Studio Cloud или локальный сервис. Этот пакет можно установить с помощью pip …

  pip install chart-studio == 1.1.0
  

или conda

  conda install -c plotly chart-studio = 1.1.0
  

Миграция

Если вы переходите с plotly.py v3 на v4, ознакомьтесь с руководством по миграции версии 4

Если вы переходите с plotly.py v2 на v3, ознакомьтесь с руководством по миграции версии 3

Авторские права и лицензии

Авторские права на код и документацию 2019 Plotly, Inc.

Код

выпущен под лицензией MIT.

Документов выпущено по лицензии Creative Commons.

Python Plotly Tutorial — JournalDev

Plotly (Plot.ly, как указано в его URL-адресе), является технологической компьютерной компанией, базирующейся в Монреале. Он известен разработкой и предоставлением инструментов онлайн-аналитики, статистики и построения графиков для частных лиц или компаний. Он также разрабатывает / предоставляет библиотеки научного построения графиков для Arduino, Julia, MATLAB, Perl, Python, R и REST.

Python Plotly Library

Графическая библиотека Python Plotly создает интерактивные графики онлайн и позволяет нам сохранять их в автономном режиме, если это необходимо.

Почему Plotly

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

  • По умолчанию он интерактивен
  • Диаграммы не сохраняются как изображения, а сериализуются как JSON, что делает их открытыми для чтения с помощью R , MATLAB, Julia и другие легко
  • Экспортирует вектор для печати / публикации
  • Легко манипулировать / встраивать в Интернет

Начало работы

Нам нужен PIP (установщик пакетов python), чтобы начать работать с графикой, нам также понадобится создать учетную запись с plotly на случай, если мы захотим использовать онлайн-возможности.В этом уроке мы будем использовать только офлайн.

Установка

Для прямой установки откройте окно терминала и выполните следующую команду:

 
sudo pip install plotly
  

Для сбора зависимостей и их загрузки может потребоваться несколько минут:

Использование Plotly

Чтобы использовать plotly в любом из скриптов Python, нам нужно будет импортировать plotly как:

 
Импортировать сюжетно
  

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

 
plotly.tools.set_credentials_file (username = 'YourUsernameHere', api_key = 'YourAPIkeyHere')
  

Для автономного использования нам нужно вызвать plot, как показано ниже, для автономного использования:

 
plotly.offline.plot ()
  

Тестовая установка

Прежде чем мы начнем использовать plotly, давайте протестируем его установку с помощью простого скрипта:

 
Импортировать сюжетно
печать (плотно.__версия__)
  

Давайте посмотрим на результат этой программы:

Как и ожидалось, это возвращает последнюю версию plotly.

Создание простого графика

Давайте начнем с простой программы «Hello, World» с примером фрагмента кода:

 
Импортировать сюжетно
из plotly.graph_objs импортировать Scatter, Layout

plotly.offline.plot ({
    "данные": [Scatter (x = [1, 2, 3, 4], y = [4, 3, 2, 1])],
    "layout": макет (title = "hello world")
})
  

Давайте посмотрим на результат этой программы:

Как ясно видно, этот график сохраняется как файл HTML в том же каталоге, что и сценарий.

Базовые диаграммы

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

Точечная диаграмма

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

 
pip install numpy
  

Вот пример программы для отображения диаграммы рассеяния:

 
Импортировать сюжетно
импортировать сюжетно.graph_objs как идут

# Создание случайных данных с помощью numpy
импортировать numpy как np

N = 1000
random_x = np.random.randn (N)
random_y = np.random.randn (N)

# Создать след
trace = go.Scatter (
    x = random_x,
    y = random_y,
    mode = 'маркеры'
)
data = [трассировка]

# Постройте и вставьте в блокнот ipython!
plotly.offline.plot (данные, имя файла = 'основной-разброс')
  

Давайте посмотрим на результат этой программы:

В этом сценарии мы также предоставили имя для файла HTML.

Линейный график и точечный график

Мы можем создать несколько более сложных / информативных графиков, таких как линейно-точечный график, аналогичным образом, как указано выше:

 
Импортировать сюжетно
импортировать сюжетно.graph_objs как идут

# Создание случайных данных с помощью numpy
импортировать numpy как np

N = 100
random_x = np.linspace (0, 1, N)
random_y0 = np.random.randn (N) +5
random_y1 = np.random.randn (N)
random_y2 = np.random.randn (N) -5

# Создать следы
trace0 = go.Scatter (
    x = random_x,
    y = random_y0,
    mode = 'маркеры',
    name = 'маркеры'
)

trace1 = go.Scatter (
    x = random_x,
    y = random_y1,
    mode = 'линии + маркеры',
    name = 'линии + маркеры'
)

trace2 = go.Scatter (
    x = random_x,
    y = random_y2,
    mode = 'линии',
    имя = 'линии'
)

data = [trace0, trace1, trace2]
сюжетно.offline.plot (данные, имя файла = 'режим разброса')
  

Давайте посмотрим на результат этой программы:

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

Коробчатые диаграммы

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

 
случайный импорт
Импортировать сюжетно
из импорта numpy *

N = 30.# Количество ящиков

# генерируем массив цветов радуги, исправляя насыщенность и яркость HSL-представления цвета
# и обходят оттенок.
c = ['hsl (' + str (h) + ', 50%' + ', 50%)' для h в linspace (0, 360, N)]

# Каждый блок представлен dict, который содержит данные, тип,
# и цвет.
# Используйте составление списка для описания N блоков, каждое из которых имеет свой цвет и
# с разными случайно сгенерированными данными:
data = [{
    'y': 3,5 * sin (pi * i / N) + i / N + (1,5 + 0,5 * cos (pi * i / N)) * случайный.ранд (10),
    'тип': 'коробка',
    'маркер': {'цвет': c [i]}
    } для i в диапазоне (int (N))]

# форматируем макет
layout = {'xaxis': {'showgrid': False, 'zeroline': False, 'tickangle': 60, 'showticklabels': False},
          'yaxis': {'zeroline': ложь, 'gridcolor': 'white'},
          'paper_bgcolor': 'rgb (233 233 233)',
          'plot_bgcolor': 'rgb (233 233 233)',
          }

plotly.offline.plot (данные)
  

Давайте посмотрим на результат этой программы:

Мы снова переместили указатель мыши на одну из точек, чтобы получить дополнительную информацию об этой точке.

Контурные графики

Контурные графики являются одними из наиболее часто используемых научных графиков:

 
из инструментов plotly import
Импортировать сюжетно
импортировать plotly.graph_objs на ходу

trace0 = go.Contour (
    z = [[2, 4, 7, 12, 13, 14, 15, 16],
       [3, 1, 6, 11, 12, 13, 16, 17],
       [4, 2, 7, 7, 11, 14, 17, 18],
       [5, 3, 8, 8, 13, 15, 18, 19],
       [7, 4, 10, 9, 16, 18, 20, 19],
       [9, 10, 5, 27, 23, 21, 21, 21],
       [11, 14, 17, 26, 25, 24, 23, 22]],
    line = dict (сглаживание = 0),
)

trace1 = идти.Контур (
    z = [[2, 4, 7, 12, 13, 14, 15, 16],
       [3, 1, 6, 11, 12, 13, 16, 17],
       [4, 2, 7, 7, 11, 14, 17, 18],
       [5, 3, 8, 8, 13, 15, 18, 19],
       [7, 4, 10, 9, 16, 18, 20, 19],
       [9, 10, 5, 27, 23, 21, 21, 21],
       [11, 14, 17, 26, 25, 24, 23, 22]],
    line = dict (сглаживание = 0,85),
)

data = tools.make_subplots (rows = 1, cols = 2,
                          subplot_titles = ('Без сглаживания', 'Со сглаживанием'))

data.append_trace (трассировка0, 1, 1)
data.append_trace (трассировка1, 1, 2)

сюжетно.offline.plot (данные)
  

Давайте посмотрим на результат этой программы:

Такие графики часто используются при отображении данных тепловой карты.

Финансовые диаграммы

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

График временных рядов

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

 
Импортировать сюжетно
импортировать plotly.graph_objs на ходу
импортировать панд как pd

df = pd.read_csv ("https://raw.githubusercontent.com/plotly/datasets/master/finance-charts-apple.csv")

data = [go.Scatter (
          x = df.Date,
          y = df ['AAPL.Close'])]

plotly.offline.plot (данные)
  

Давайте посмотрим на результат этой программы:

Если pandas не установлено на вашем компьютере, установите его с помощью этой команды:

 
pip install pandas
  

OHLC Chart

OHLC Chart — также отличный способ объяснить данные, относящиеся к временным рядам, для неравномерного распределения.Давайте посмотрим на фрагмент кода:

 
Импортировать сюжетно
импортировать plotly.graph_objs на ходу
from datetime import datetime

open_data = [33.0, 33.3, 33.5, 33.0, 34.1]
high_data = [33.1, 33.3, 33.6, 33.2, 34.8]
low_data = [32,7, 32,7, 32,8, 32,6, 32,8]
close_data = [33.0, 32.9, 33.3, 33.1, 33.1]

даты = [datetime (год = 2013, месяц = ​​10, день = 10),
         datetime (год = 2013, месяц = ​​11, день = 10),
         datetime (год = 2013, месяц = ​​12, день = 10),
         datetime (год = 2014, месяц = ​​1, день = 10),
         datetime (год = 2014, месяц = ​​2, день = 10)]

след = идти.Ohlc (x = даты,
                open = open_data,
                high = high_data,
                low = low_data,
                close = close_data)
data = [трассировка]

plotly.offline.plot (данные, имя файла = 'ohlc_datetime')
  

Давайте посмотрим на результат этой программы:

Заключение

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

Подробнее о машинном обучении читайте здесь.

Начало работы с Plotly-Python — GeeksforGeeks

Начало работы с Plotly-Python

Библиотека Plotly Python — это интерактивная библиотека с открытым исходным кодом.Это может быть очень полезным инструментом для визуализации данных и простого и легкого понимания данных. Графические объекты plotly представляют собой высокоуровневый интерфейс для построения графиков, которые просты в использовании. Он может строить различные типы графиков и диаграмм, такие как точечные диаграммы, линейные диаграммы, гистограммы, прямоугольные диаграммы, гистограммы, круговые диаграммы и т. Д.

Итак, вам всем должно быть интересно, почему построение графика лучше других инструментов или библиотек визуализации? Вот ответ —

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

Хорошо, хватит теории, давайте начнем.

Установка:

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

 pip install plotly
 

Начало работы

Давайте создадим различные графики с помощью этого модуля

  • Точечная диаграмма: Точечная диаграмма представляет значения для двух различных числовых переменных.В основном они используются для представления взаимосвязи между двумя переменными.

Python3

import numpy as np

import plotly

import plotly plot.graph_objects plotly plot_objects import as go

из plotly.offline импорт init_notebook_mode

init_notebook_mode (подключено = 0007 True True .random.randint (низкий = 1 , высокий = 50 , размер = 150 ) * 0,1

= np.random.randint (низкий = 1 , высокий = 50 , размер = 150 ) *

рис = go.Рисунок (данные = go.Scatter (x = x, y = y, режим = 'маркеры' ))

.show ()

Вывод:

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

Python3

import numpy as np

import plotly

import plotly plot.graph_objects plotly plot_objects import as go

из plotly.offline импорт init_notebook_mode

init_notebook_mode (подключено = 000 'Индия' , 'Канада' ,

'Австралия' , 'Бразилия' ,

Мексика 'Россия' ,

'Германия' , 'Швейцария' ,

'Техас' ]

fig = Рисунок ([go.Bar (x = стран,

y = [ 80 , 70 , 60 ,

40 , 50 , 60 , 70 , 80 ])

000

000

000

000

000show ()

Вывод:

  • Круговая диаграмма: Круговая диаграмма представляет распределение различных переменных в общем. На круговой диаграмме каждый сегмент показывает свой вклад в общую сумму.

Python3

import numpy as np

import plotly

import plotly.graph_objects as go

import plotly.offline as pyo

from plotly.offline import init_notebook_mode

000 000 0008 0009 )

стран = [ «Индия» , «Канада» ,

, Австралия, Бразилия ,

'Мексика' , 'Россия' ,

'Германия' , 'Швейцария' ' ]

значение с = [ 4500 , 2500 , 1053 , 500 ,

0007000 000 000700070008 , 600 , 3500 ]

fig = go.Рисунок (данные = [go.Pie (ярлыки = стран,

значений = значений)])

fig

Вывод:

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

Python3

import numpy as np

import plotly plot import

.graph_objects as go

import plotly.offline as pyo

from plotly.offline import init_notebook_mode

0009 )

нп.random.seed ( 42 )

x = np.random.randn ( 250 )

go.Figure (data = [go.Histogram (x = x)])

fig.show ()

0 Выход

  • Коробчатая диаграмма: Коробчатая диаграмма представляет собой статистическую сводку.Минимум, первый квартиль, медиана, третий квартиль, максимум.

Python3

import numpy as np

import plotly

import plotly plot.graph_objects plotly plot_objects import as go

из plotly.offline import init_notebook_mode

init_notebook_mode (подключено = 000 True True random.seed ( 42 )

y = np. random.randn ( 50 )

np.random.randn ( 50 )

fig = go.Figure ()

fig.add_trace (go.Box (y ))

рис.add_trace (go.Box (y = y1))

fig.show ()

Вывод:

! Укрепите свои основы с помощью курса Python Programming Foundation и изучите основы.

Для начала подготовьтесь к собеседованию. Расширьте свои концепции структур данных с помощью курса Python DS . И чтобы начать свое путешествие по машинному обучению, присоединитесь к Машинное обучение - курс базового уровня

Python Plotly tutorial - GeeksforGeeks

Python Plotly Library - это библиотека с открытым исходным кодом, которую можно использовать для визуализации данных и понимания данных просто и легко.Plotly поддерживает различные типы графиков, такие как линейные диаграммы, графики рассеяния, гистограммы, графики Кокса и т. Д. Итак, вам всем должно быть интересно, почему Plotly превосходит другие инструменты или библиотеки визуализации? Вот ответ -

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

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

Содержание

Последние статьи на Plotly !!!

Установка

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

 pip install plotly 

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

Структура пакета Plotly

В Plotly есть три основных модуля. Это:

  • plotly.plotly
  • plotly.graph.objects
  • plotly.tools

plotly.plotly действует как интерфейс между локальной машиной и Plotly. Он содержит функции, требующие ответа от сервера Plotly.

plotly.graph_objects модуль содержит объекты (рисунок, макет, данные и определение графиков, такие как точечная диаграмма, линейная диаграмма), которые отвечают за создание графиков.Рисунок может быть представлен либо как dict, либо как экземпляры plotly.graph_objects.Figure , и они сериализуются как JSON перед передачей в plotly.js. Для лучшего понимания рассмотрим приведенный ниже пример.

Примечание: модуль plotly.express может создать рисунок целиком. Он внутренне использует graph_objects и возвращает экземпляр graph_objects.Figure.

Пример:

Python3

import plotly.выразить как px

fig = px.line (x = [ 1 , 2 ] , y = [ 1 , 2 , 3 ])

печать

:

Рисунки представлены в виде деревьев, где корневой узел имеет три атрибута верхнего уровня - данные , макет и кадры , а также именованные узлы, называемые «атрибутами».Рассмотрим приведенный выше пример, layout.legend - это вложенный словарь, где легенда - это ключ внутри словаря, значение которого также является словарем.

plotly.tools модуль содержит различные инструменты в виде функций, которые могут улучшить работу с Plotly.

Начало работы

Изучив установку и базовую структуру Plotly, давайте создадим простой график, используя предварительно определенные наборы данных, определенные в plotly.

Пример:

Python3

9015

В приведенном выше примере файл plotly.Импортируется модуль express, который возвращает экземпляр Figure. Мы создали простую линейную диаграмму, передав координаты x, y точек, которые нужно построить.

Создание различных типов диаграмм

С помощью plotly мы можем создать более 40 диаграмм, и каждый график может быть создан с использованием классов plotly.express и plotly.graph_objects. Давайте посмотрим на некоторые часто используемые диаграммы с помощью Plotly.

Линейный график

Линейный график в Plotly - это очень доступное и яркое приложение для построения графиков, которые управляют различными типами данных и собирают статистику в удобном стиле.В строке пикселей каждая позиция данных представлена ​​как вершина (положение которой задается столбцами x и y) ломаной линии в двухмерном пространстве.

Пример:

Python3

import plotly.выразить как px

fig = px.line (x = [ 1 , 2 ] , y = [ 1 , 2 , 3 ])

fig.show () 28

:

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

Гистограмма

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

Пример:

Python3

import plotly.express as px

df 0007 = .data

рис. = пикселей.line (df, x = "виды" , y = "petal_width" )

fig.show Output ()

import plotly.express as px

df 0007 = .data

рис. = пикселей.bar (df, x = "sepal_width" , y = "sepal_length" )

fig.show 328 :

Подробную информацию о столбчатой ​​диаграмме см. В статьях ниже.

Гистограммы

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

Пример:

Python3

:

Подробную информацию о скрипичных сюжетах см. В следующих статьях.

  • Графики скрипки с использованием Plotly

Диаграммы Ганта

Таблица обобщенного времени нормализации активности (GANTT) - это тип диаграммы, на которой присутствуют серии горизонтальных линий, которые показывают объем выполненной работы или производства, завершенного за данный период времени по отношению к сумме, запланированной для этих проектов.

Пример:

Python3

import plotly.express as px

df 0007 = .data

рис. = пикселей.гистограмма (df, x = "sepal_length" , y = "petal_width" )

900

329

:

Подробную информацию о гистограммах см. В статьях ниже.

Точечная диаграмма и пузырьковые диаграммы

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

Пузырьковая диаграмма - диаграмма рассеяния с пузырьками (закрашенные кружками). Пузыри имеют разные размеры в зависимости от другой переменной в данных. Его можно создать с помощью метода scatter () программы plotly.express.

Пример 1: Диаграмма рассеяния

Python3

import plotly.выразить как px

df = px.data.iris ()

fig = px.scatter (df, x ) "разновидности" , y = "petal_width" )

fig.show ()

Пример

Выход

Пузырьковый график

Python3

import plotly.выразить как px

df = px.data.iris ()

fig = px.scatter (df, x ) "разновидность" , y = "ширина_ лепестка" ,

размер = "длина_ лепестка" , цвет =

рис.show ()

Вывод:

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

Круговые диаграммы

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

Пример:

Python3

import plotly.express as px

df = .data

fig = px.pie (df, values ​​ = "total_bill" , names = "day" )

0009.show ()

Вывод:

Подробную информацию о круговых диаграммах см. в следующих статьях.

Блок-диаграммы

Блок-диаграмма также известна как диаграмма Whisker, созданная для отображения сводки набора значений данных, имеющих такие свойства, как минимум, первый квартиль, медиана, третий квартиль и максимум. На ящичковой диаграмме прямоугольник создается от первого квартиля до третьего квартиля, также присутствует вертикальная линия, которая проходит через прямоугольник на медиане.Здесь ось X обозначает данные, которые должны быть нанесены на график, а ось Y показывает распределение частот.

Пример:

Python3

import plotly.express as px

df 000 .data

fig = px.box (df, x = «день» , y = «total_bill» )

fig show ()

Вывод:

Подробную информацию о коробчатых диаграммах см. в следующих статьях.

Графики для скрипки

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

Пример:

Python3

import plotly.express as px

df = .data

рис. = пикселей.скрипка (df, x = "день" , y = "total_bill" )

fig.show

import plotly.figure_factory as ff

df = = = "A" , начало = '2020-01-01' , конец = '2009-02-02' ),

dict ( Задача = «Задание B» , начало = '2020-03-01' , конец = '2020-11-11' ),

dict (Task = "Job C" , начало = '2020-08-06' , Finish = '2020-09-21' )]

9000 2 рис. = и далее.create_gantt (df)

fig.show ()

Вывод:

Подробную информацию о диаграммах Ганта см. в следующих статьях.

Контурные графики

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

Контурные графики используются в случае, когда вы хотите увидеть изменения некоторого значения (Z) как функцию по отношению к двум значениям (X, Y). Рассмотрим пример ниже.

Пример:

Python3

import plotly.graph_objects as go

000 00070007 0007 , 50 , 2 )

feature_y = np.arange ( 0 , 50 , 3 )

[X, Y] = np.mes 9, 9hgrid feature (feature)

Z = np.cos (X / 2 ) + np.sin (Y / 4

000

000

000 рис = go.Рисунок (данные =

go.Contour (x = feature_x, y = feature_y, z = Z))

.show ()

Выход:

Подробную информацию о контурных графиках см. в следующих статьях.

Тепловые карты

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

Пример:

Python3

import plotly.graph_objects as go

. 9 feature_xarange ( 0 , 50 , 2 )

feature_y = np.arange ( 0 , )

[X, Y] = np.meshgrid (feature_x, feature_y)

Z = 2 ) + нп.sin (Y / 4 )

fig = go. Рисунок (данные =

feature_x, y = feature_y, z = Z,))

fig.show ()

9000 9000

000

Выход: приведенные ниже статьи, чтобы получить подробную информацию о тепловых картах.

Полосы ошибок

Для функций, представляющих точки 2D-данных, такие как px.scatter, px.line, px.bar и т. Д., столбцов ошибок задаются как имя столбца, которое является значением error_x (для ошибки на позиции x) и error_y (для ошибки на позиции y). Планки погрешностей - это чередование данных в графическом представлении, которые используются на графиках для обозначения ошибки или неопределенности в сообщаемой мощности.

Пример:

Python3

import plotly.выразить как px

df = px.data.iris ()

df [ «ошибка» = df "petal_length" ] / 100

fig = px.scatter (df, x = «petal_width» ,

error_x = «error» , error_y = «error» )

show ()

Вывод:

Линейные 3D-графики

Линейный график в plotly очень доступен и является замечательным приложением к plotly, которое управляет различными типами данных и легко собирает статистика стиля. При px.line_3d каждая позиция данных представлена ​​как вершина (положение которой задается столбцами x, y и z) ломаной линии в трехмерном пространстве.

Пример:

Python3

import plotly.выразить как px

df = px.data.tips ()

fig = px.f , x «пол» , у = «день» ,

z = «время» , цвет = «пол »

рис.show ()

Вывод:

Подробную информацию о трехмерных линейных диаграммах см. в следующих статьях.

3D точечная диаграмма

3D точечная диаграмма может строить двумерную графику, которая может быть улучшена путем сопоставления до трех дополнительных переменных с использованием семантики параметров оттенка, размера и стиля. Все параметры управляют визуальной семантикой, которая используется для идентификации различных подмножеств.Использование избыточной семантики может помочь сделать графику более доступной. Его можно создать с помощью функции scatter_3d класса plotly.express.

Пример:

Python3

import plotly.express as px

df 0007 = .data

fig = px.scatter_3d (df, x = 'sepal_width' ,

y = 'длина ' se z = 'petal_width' ,

цвет = 'виды' )

fig.show ()

Вывод:

Обратитесь к статьям ниже, чтобы получить подробную информацию о графике рассеяния 3D.

Трехмерные графики поверхности

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

Пример:

Python3

import plotly.graph_objects as go

import numpy as np

внешний (np.linspace ( - 2 , 2 , 30 ), np.ones ( 30 ))

y .copy (). T

z = np.cos (x * * 2 + y * *

fig = go.Figure (data = [go.Surface (x = x, y = y, z = 9000) ])

рис.show ()

Вывод:

Взаимодействие с графиками

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

Создание раскрывающегося меню в Plotly

Раскрывающееся меню является частью кнопки меню, которая постоянно отображается на экране.Каждая кнопка меню связана с виджетом меню, который может отображать варианты выбора для этой кнопки меню при нажатии на нее. В plotly есть 4 возможных метода изменения диаграмм с помощью метода updatemenu.

  • restyle: изменить данные или атрибуты данных
  • relayout: изменить атрибуты макета
  • update: изменить данные и атрибуты макета
  • animate: запустить или приостановить анимацию

Пример:

Python3

import plotly.graph_objects как px

import numpy as np

np.random.seed ( 42 000 000 000 000 000 000 0009 np.random.randint ( 1 , 101 , 100 )

random_y = np.random.randint ( 1 , 101 , 100 )

участок = px.Figure (data = =

x = random_x,

y = random_y,

000 000

= = ])

участок.update_layout (

updatemenus = [

dict (

список кнопок = 000 = (

args = [ «тип» , «разброс» ],

ярлык ,

метод = "рестайл"

),

dict (

000 000 000 000 000 000 000 000 000 000 «тип» , «бар» ],

этикетка = «Гистограмма» ,

метод rest80008

)

]),

направление = «вниз» ,

000 0009) 000

)

участок.show ()

Вывод:

В приведенном выше примере мы создали два графика для одних и тех же данных. Эти графики доступны из раскрывающегося меню.

Добавление кнопок к графику

В графическом плане действий Пользовательские кнопки используются для быстрого выполнения действий непосредственно из записи. Пользовательские кнопки могут быть добавлены в макеты страниц в CRM, маркетинге и пользовательских приложениях. Есть также 4 возможных метода, которые можно применить к настраиваемым кнопкам:

  • рестайл: изменить данные или атрибуты данных
  • relayout: изменить атрибуты макета
  • обновить: изменить данные и атрибуты макета
  • анимировать : запустить или приостановить анимацию

Пример:

Python3

import plotly.graph_objects как px

import pandas as pd

data = pd.read_csv ( "tips.csv" 000 )

участок = пикс. Рисунок (данные = [пикс. Разброс (

x = данные [ 'день'] y = data [ 'tip' ],

mode = 'markers' ,) 000

000) 000

участок.update_layout (

updatemenus = [

dict (

type = = = «слева» ,

кнопок = список ([

dict 000

000 000

[ «тип» , «разброс» ],

метка = «Точечная диаграмма» ,

рестайл »

90 002 ),

dict (

args = [ «тип» , 000 этикетка = «Гистограмма» ,

метод = «рестайл»

) 000

) ),

]

)

участок.show ()

Вывод:

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

Создание ползунков и селекторов на графике

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

Пример:

Python3

import plotly.graph_objects as px

import plotly.express as go

p import

p import

df = go.data.tips ()

x = df [ 'total_bill' ]

y = [ ]

график = пикс. Рисунок (данные = [пикс. Разброс (

x = = y,

mode = 'lines' ,)

])

plot.update_layout (

xaxis = dict (

rangeselector = dict список [

dict (счет = 1 ,

шаг = «день» 000 000 000 000 000 "назад" ),

])

),

rangelider = 07 = True

),

)

)

участок.show ()

Вывод:

Больше графиков с использованием Plotly

Больше тем на Plotly

Внимание компьютерщик! Укрепите свои основы с помощью курса Python Programming Foundation и изучите основы.

Для начала подготовьтесь к собеседованию. Расширьте свои концепции структур данных с помощью курса Python DS . И чтобы начать свое путешествие по машинному обучению, присоединяйтесь к Машинное обучение - курс базового уровня

Plotly Python Tutorial для специалистов по машинному обучению

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

Вот некоторые из визуализаций, которые вы можете ожидать:

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

ПРОВЕРИТЬ СВЯЗАННУЮ СТАТЬЮ
📊 Лучшие инструменты для визуализации модели машинного обучения


Почему вам следует выбрать Plotly

Итак, правда в том, что вы все еще можете получить некоторые из этих визуализаций с помощью Matplotlib, Seaborn или Bokeh. Есть несколько причин, по которым вы выбрали бы Plotly:

  • визуализации интерактивны, в отличие от Seaborn и Matplotlib;
  • довольно просто создавать сложные визуальные эффекты с помощью высокоуровневого Express API Plotly;
  • Plotly также предоставляет платформу, известную как Plotly Dash, которую вы можете использовать для размещения ваших визуализаций, а также проектов машинного обучения;
  • вы можете сгенерировать HTML-код для своих визуализаций, если хотите, вы можете встроить его на свой веб-сайт.

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

Важно также помнить о передовых методах создания визуализаций, например:

  • с использованием цветов, приятных для глаз
  • убедитесь, что числа складываются, например, на круговой диаграмме проценты должны составлять 100%
  • используйте правильную цветовую шкалу, чтобы зритель автоматически понимал, какой цвет представляет большее число, которое представляет нижнее значение
  • , не помещайте слишком много данных в один и тот же визуал, например, вы можете сгруппировать и построить самые верхние элементы вместо того, чтобы строить все в наборе данных
  • , убедитесь, что график не слишком занято
  • всегда добавляйте источник ваших данных, даже если вы тот, кто их собрал.Это вызывает доверие.

Мы можем взаимодействовать с Plotly API двумя способами;

В этой статье мы будем использовать их как взаимозаменяемые.

Построить гистограмму

Гистограмма - это представление распределения числовых данных с данными, сгруппированными в интервалы. Затем отображается количество для каждого бункера. В Plotly данные можно агрегировать с помощью таких функций агрегирования, как сумма или среднее. В Plotly данные, которые нужно объединить, также могут быть категориальными.Вот пример:

 импортировать plotly.express как px
fig = px.histogram (views, x = "views")
fig.show () 

Гистограмма

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

 fig = px.bar (views_top, x = 'event', y = 'views')
fig.show () 

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

 fig = px.bar (views_top, x = 'views', y = 'event', Ориентация = 'h')
fig.show ()
 

Круговая диаграмма

Круговая диаграмма - это еще один тип визуализации, показывающий количество элементов в каждой категории. Этот тип позволяет пользователю быстро определить долю определенного элемента или значения во всем наборе данных. Давайте на этот раз покажем, как можно построить график, используя объекты графика Plotly.

 импортный сюжет.graph_objects как идут

fig = go.Figure (
    данные = [
        go.Pie (метки = метки, значения = значения)
    ])
fig.show () 

Сюжетная кольцевая диаграмма

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

 fig = go.Figure (
    данные = [
        go.Pie (метки = метки, значения = значения, отверстие = 0,2)
    ])
fig.show ()
 

Диаграмма рассеяния

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

 fig = px.scatter (df, x = 'comments', y = 'views')
fig.show ()
 

График

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

 fig = px.line (переговоры, x = "published_year", y = "number_of_events")
fig.show () 

Сюжетные аннотации

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

 fig = px.scatter (df, x = 'comments', y = 'views', color = 'duration', text = "published_day")
fig.show () 

График разброса в 3D

В Plotly можно создать трехмерную диаграмму рассеяния, передав параметры x, y и z.

 fig = px.scatter_3d (df, x = 'комментарии', y = 'views', z = 'duration', color = 'views')
fig.show () 

Графическая запись в HTML

Plotly также позволяет сохранять любую визуализацию в файл HTML. Это на удивление легко сделать.

 fig.write_html ("3d.html") 

Графически 3D поверхность

Давайте теперь посмотрим, как построить трехмерную поверхность в Plotly. Как и в случае с трехмерным разбросом, мы должны передать параметры x, y и z.

 fig = go.Figure (data = [go.Surface (z = df [['продолжительность', 'просмотры', 'комментарии']]. Значения)])

fig.update_layout (title = '3D Surface', autosize = False,
                  ширина = 500, высота = 500,
                  маржа = dict (l = 65, r = 50, b = 65, t = 90))

fig.show () 

Пузырьковая диаграмма

Пузырьковая диаграмма очень похожа на диаграмму рассеяния.Фактически, он построен на диаграмме рассеяния. Единственное, что мы добавляем к нему, - это размер пузыря.

 fig = px.scatter (df, x = 'comments', y = 'views', size = 'duration', color = 'num_speaker', log_x = True, size_max = 60)
fig.show ()
 

Графическая таблица

Plotly также можно использовать для визуализации фрейма данных в виде таблицы. Для этого мы можем использовать Plotly Graph Objects Table . Передаем заголовок и ячейки в таблицу. Мы также можем указать стиль, как показано ниже:

 fig = go.Рисунок (data = [go.Table (header = dict (values ​​= views_top.columns,
                                           fill_color = 'желтый',
),
                 ячейки = dict (значения = [views_top ['event'], views_top ['views']],
                            fill_color = 'палитра бирюзы',
                           ))
                     ])
fig.show () 

Графическая карта

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

 fig = px.de density_heatmap (df, x = "published_year", y = "views", z = "comments")
fig.show ()
 

Сюжетные анимации

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

 px.scatter (df, x = "duration", y = "comments", animation_frame = "published_year", size = "duration", color = "published_day") 

Ящичный участок

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

 fig = px.box (df, x = "published_day", y = "duration")
fig.show ()
 

Графические карты

Чтобы работать с картами в Plotly, вам необходимо перейти в Mapbox и получить свой ключ API Mapbox. Имея под рукой, вы можете визуализировать свои данные на карте в Plotly. Это делается с помощью scatter_mapbox при передаче широты и долготы.

 пикс.set_mapbox_access_token ('ВАШТОКЕН')
fig = px.scatter_mapbox (df, lat = "lat", lon = "lon",
                        color = "регион",
                        size = "просмотры",
                  color_continuous_scale =
                        px.colors.cyclical.IceFire, size_max = 15)
fig.show () 

Участки

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

 px.scatter (df, x = "duration", y = "comments",
           animation_frame = "опубликованный_месяц", animation_group = "событие",
           facet_col = "опубликованный_день", ширина = 1500, высота = 500,
           size = "views", color = "published_day",
          ) 

Планка погрешностей графика

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

 fig = go.Figure (
    данные = [
        go.Bar (
    x = views_top ['событие'], y = views_top ['views'],
    error_y = dict (type = 'data', array = views_top ['error']. values)
)
    ])
fig.show () 

Заключительные мысли

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

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

Используемый ноутбук можно найти здесь.

Удачного построения - это не каламбур!

Деррик Мвити

Деррик Мвити - специалист по данным, который страстно любит делиться знаниями. Он активно участвует в сообществе специалистов по науке о данных через такие блоги, как Heartbeat, Towards Data Science, Datacamp, Neptune AI, KDnuggets и многое другое. Его контент был просмотрен в Интернете более миллиона раз.Деррик также является автором и онлайн-инструктором. Он также обучает и работает с различными учреждениями, чтобы внедрять решения для науки о данных, а также повышать квалификацию их сотрудников. Возможно, вы захотите пройти его Полный учебный курс по науке о данных и машинному обучению в курсе Python.


ЧИТАТЬ СЛЕДУЮЩИЙ

Лучшие инструменты для визуализации моделей машинного обучения

Читать 4 мин. | Павел Кийко | Опубликовано 25 мая, 2020

Фраза «Все модели неправильные, но некоторые полезны» особенно актуальны в машинном обучении.При разработке моделей машинного обучения вы всегда должны понимать, где оно работает так, как ожидалось, а где терпит неудачу.

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

  • Посмотрите на метрики оценки (также вы должны знать, как выбрать метрику оценки для вашей проблемы)
  • Посмотрите на диаграммы производительности, такие как ROC, Lift Curve, Confusion Matrix и другие
  • Посмотрите на кривые обучения для оценки переобучения
  • Посмотрите в прогнозах модели для наилучшего / наихудшего случая
  • Посмотрите, насколько ресурсоемкими являются обучение модели и вывод (они приводят к серьезным затратам и будут иметь решающее значение для деловой стороны)

Как только вы получите хорошее представление об одной модели, вы станете хорошими, верно? Неправильно 🙂

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

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

Читать далее ->


Новый взгляд на сюжет - практический бизнес-Python

Введение

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

Предыдущие наблюдения

В 2015 году я сравнил несколько библиотек визуализации Python, включая Plotly.
В то время у меня были две основные проблемы с Plotly:

.

  1. Библиотека требует, чтобы вы создали учетную запись и получили ключ API.У вас не было
    для публикации ваших визуализаций на серверах Plotly, но дополнительные шаги для ключа API
    были немного дополнительным препятствием.
  2. API был не очень оптимизирован. Он был немного неуклюжим и не «щелкал» с
    мне сразу.

Оба эти препятствия были устранены с помощью обновлений в прошлом году.

В марте 2019 года Plotly выпустила Plotly Express. Эта новая библиотека высокого уровня адресована
многие из моих опасений по поводу питонической природы Plotly API, которые я буду обсуждать
позже в этой статье.

Единственная небольшая проблема с Plotly Express в первоначальном выпуске заключалась в том, что это был отдельный пакет.
от Plotly, поэтому это был дополнительный этап установки.

Перенесемся в июль 2019 года, когда был выпущен Plotly 4.0. Этот выпуск ознаменовал два больших
вехи, которые побудили меня проводить больше времени с Plotly. Самым большим изменением было
что Plotly 4.0 и выше по умолчанию будут работать только в автономном режиме. Другими словами, нет необходимости
для ключа API. Вы все еще можете использовать онлайн-режим, если хотите, но есть
совершенно отдельный пакет для этого.

Другим большим преимуществом серии 4.0 является то, что Plotly Express был снова интегрирован в
базовый пакет Plotly. Нет необходимости устанавливать дополнительный пакет Plotly Express.
Вы можете
conda установить

или
pip install

Plotly и получите API Plotly Express
бесплатно.

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

Преимущества Plotly Express

В недавнем гостевом посте Дуарте О. Кармо упомянул некоторые преимущества Plotly. я
повторить его комментарии и хочу дополнить их моими собственными наблюдениями после использования его в течение нескольких месяцев.

Согласованный API

Когда я создаю визуализации, я повторяю множество разных подходов, прежде чем
Я нахожу тот, который действительно работает. Для меня важно, что я могу легко переключать визуализацию
подходы с минимальными изменениями кода. «Соответствие API», вероятно, зависит от человека, но мой опыт
это то, что Plotly Express соответствует моему мыслительному процессу.Подход Plotly Express в чем-то похож
на море. Сигнатура функции довольно проста и эффективна.

Чтобы продемонстрировать, мы будем использовать некоторые данные о зерновых, которые я очистил для ясности:

 импортировать панд как pd
импортировать plotly.express как px

df = pd.read_csv ('https://github.com/chris1610/pbpython/blob/master/data/cereal_data.csv?raw=True')
 

Данные содержат некоторые простые характеристики различных злаков:

Если мы хотим посмотреть на отношения между
рейтинг

и
сахар

а также
укажите название зерновых в виде ярлыка при наведении курсора:

 fig = px.разброс (df,
                x = 'сахара',
                y = 'рейтинг',
                hover_name = 'имя',
                title = 'Оценка зерновых по сравнению с сахаром')
fig.show ()
 

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


  • px.scatter ()

  • px.line ()

  • px.bar ()

  • px.histogram ()

  • пикс.коробка ()

  • px.violin ()

  • px.strip ()

Для моей работы эти типы диаграмм покрывают 80-90% того, что я делаю изо дня в день.

Вот еще один пример. На этот раз это статическая гистограмма:

 fig = px.histogram (df, x = 'rating', title = 'Рейтинг распределения')
fig.show ()
 

В дополнение к различным типам диаграмм большинство типов поддерживают одну и ту же сигнатуру базовой функции.
так что вы можете легко фасетировать данные или изменять цвета или размеры в зависимости от значений в вашем DataFrame:

 fig = px.разброс (df,
                x = 'сахара',
                y = 'рейтинг',
                цвет = 'mfr',
                size = 'калории',
                facet_row = 'полка',
                facet_col = 'тип',
                hover_name = 'имя',
                category_orders = {'полка': ['верхний', 'средний', 'нижний']})
fig.show ()
 

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

Многие типы диаграмм

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

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

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

 fig = px.treemap (df, path = ['полка', 'mfr'], values ​​= 'cereal', title = 'зерновые по расположению полки')
fig.show ()
 

Вы можете поменять концепции и использовать диаграмму солнечных лучей (не называйте меня круговой):

 fig = px.солнечные лучи (df, path = ['mfr', 'полка'], значения = 'зерновые')
fig.show ()
 

Сохранение изображений

Удивительно, но одна из проблем многих графических библиотек заключается в том, что это непросто.
для сохранения статики
.png

,
.jpeg

или
.svg

файлы. Это одна из областей, где действительно выделяется matplotlib
и многие инструменты построения графиков javascript испытывают трудности, особенно если корпоративные
системы заблокированы, а настройки брандмауэра вызывают проблемы. Я определенно сделал свою долю
делать снимки экрана и вставлять изображения в PowerPoint или электронное письмо.

Plotly недавно выпустил калейдо, который значительно упрощает сохранение статических изображений в нескольких
форматы. В объявлении более подробно рассказывается о проблемах развития.
стабильное и быстрое решение для экспорта изображений. Я лично боролся с некоторыми из этих
те же проблемы. За последние пару недель я использовал калейдо, надежно сохраняя высокие
качественные изображения, как рекламируется. Например, сохранение как
.svg

делает для гораздо более высокого качества
изображения в моих презентациях.

В примерах в этой статье я использовал комбинацию статических
.png

и динамические изображения HTML.

Например, если я хочу сохранить маленькую версию (
масштаб = 0,85

) диаграммы солнечных лучей:

 fig.write_image ('sunburst.png', scale = 0,85)
 

Мне удалось использовать этот подход в собственной среде Windows, а также с WSL.
и подозреваю, что он будет работать и на MacOS. Я действительно рад видеть это решение на месте
for Plotly и считаю его удивительно полезным для обмена результатами.

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


тег.

 fig.write_html ('treemap.html',
               include_plotlyjs = 'cdn',
               full_html = Ложь,
               include_mathjax = 'cdn')
 

Я включил сгенерированный html в свое статическое сообщение в блоге, а Plotly позаботился об интерактивном
составные части.Довольно приятно!

Работает с пандами

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

Plotly может быть еще больше интегрирован с пандами. У Pandas 0.25 и выше есть возможность
определить различные бэк-энды для построения графиков, и Plotly можно включить таким образом:

 pd.options.plotting.backend = "plotly"
 

Что позволяет создавать визуализацию, используя комбинацию pandas и Plotly API.
Вот пример гистограммы с использованием этой комбинации:

 fig = df [['натрий', 'потасс']]. Plot (kind = 'hist',
                                    nbins = 50,
                                    histnorm = 'плотность вероятности',
                                    непрозрачность = 0,75,
                                    маргинальный = 'коробка',
                                    title = 'Распределение калия и натрия')
инжир.write_image ('калий_sodium_plots.png')
 

Еще одно недавнее изменение в plotly Express заключается в том, что он поддерживает «широкую форму», а также
аккуратные (также известные как длинные) данные. Эта функция позволяет передавать несколько столбцов DataFrame.
вместо попытки
плавить

данные в правильный формат. Обратитесь к документации
для получения дополнительных примеров.

Персонализация фигурки

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

Plotly Express для Plotly.py - это то же самое, что Seaborn для matplotlib: оболочка высокого уровня, которая
позволяет быстро создавать фигуры, а затем использовать возможности базового API и
экосистема для внесения изменений впоследствии.

Вы можете настроить окончательную диаграмму Plotly Express, используя
update_layout

,
add_shape

,

add_annotation


add_trace

или определение
шаблон

.Документация
содержит много подробных примеров.

Вот пример настройки нескольких компонентов
натрий

и
калий

распространение:

 fig = df [['натрий', 'потасс']]. Plot (kind = 'hist',
                                    nbins = 50,
                                    непрозрачность = 0,75,
                                    маргинальный = 'коробка',
                                    title = 'Распределение калия и натрия')
fig.update_layout (
    title_text = 'Распределение натрия и калия', # название сюжета
    xaxis_title_text = 'Граммы',
    yaxis_title_text = 'Счетчик',
    bargap = 0.1, # промежуток между полосами координат соседнего местоположения
    template = 'simple_white', # выберите один из предопределенных шаблонов
)

# Может вызывать update_layout несколько раз
fig.update_layout (legend = dict (yanchor = "top", y = .74, xanchor = "right", x = .99))

# добавить вертикальную "целевую" линию
fig.add_shape (
    type = 'строка',
    line_color = 'золото',
    line_width = 3,
    непрозрачность = 1,
    line_dash = 'точка',
    х0 = 100,
    х1 = 100,
    xref = 'х',
    у0 = 0,
    y1 = 15,
    yref = 'y')

# добавить текстовую выноску со стрелкой
инжир.add_annotation (
    text = 'Цель USDA',
    xanchor = 'право',
    х = 100,
    у = 12,
    стрелка = 1,
    showarrow = True)

fig.write_html ('odium_potassion_custom.html ',
               include_plotlyjs = 'cdn',
               full_html = Ложь,
               include_mathjax = 'cdn')
 

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

Интерактивные опции

По умолчанию все визуализации Plotly являются интерактивными (как показано в этой статье).
Бывают ситуации, когда вам нужно создавать более надежные приложения.

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

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

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

:

 импорт Streamlit как st
импортировать панд как pd
импортировать plotly.express как px

@ st.cache ()
def load_data ():
df = pd.read_csv (
'https://github.com/chris1610/pbpython/blob/master/data/cereal_data.csv?raw=True'
)
return df

# Прочитать данные о зерновых
df = load_data ()

st.title ('Рейтинговое исследование')

# Только часть опций имеет смысл
x_options = [
«калории», «белок», «жир», «натрий», «клетчатка», «углеводы», «сахар»,
потас
]

# Разрешить использовать на выбор
x_axis = ул.sidebar.selectbox ('Какое значение вы хотите изучить?', x_options)

# построить значение
fig = px.scatter (df,
x = x_axis,
y = 'рейтинг',
hover_name = 'имя',
title = f'Основные рейтинги vs.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

2024 © Все права защищены. Карта сайта