JavaRush /Курсы /Python SELF /Введение в интерактивные графики с библиотекой Plotly для...

Введение в интерактивные графики с библиотекой Plotly для динамических отчетов

Python SELF
42 уровень , 2 лекция
Открыта

1. Знакомство с Plotly

Введение в интерактивную визуализацию

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

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

Что такое Plotly и зачем он нужен

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

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

Сравнение Matplotlib и Plotly

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

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

Установка и настройка Plotly

Давайте приступим к делу и настроим нашу среду для работы с Plotly.

Установка Plotly: Как и большинство замечательных вещей в Python, Plotly можно установить через pip. Откройте командную строку или терминал и выполните следующую команду:

Bash

pip install plotly

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

Python

import plotly.express as px
import plotly.graph_objects as go

Где plotly.express — более простой API для быстрого создания графиков, а plotly.graph_objects — более гибкий подход для сложных визуализаций.

2. Первый интерактивный график

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

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

Python

import plotly.express as px
import pandas as pd

# Пример данных
data = pd.DataFrame({
    "Дата": pd.date_range(start="2023-01-01", periods=7),
    "Продажи": [150, 230, 270, 300, 190, 210, 280]
})

# Создание интерактивного графика
fig = px.line(data, x="Дата", y="Продажи", title="Продажи за неделю")
fig.show()

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

Настройка интерактивности

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

Python

fig.update_layout(
    xaxis=dict(rangeslider=dict(visible=True)),
    title=dict(x=0.5)  # Центрирование заголовка
)
fig.show()

Здесь мы включили диапазонный ползунок (rangeslider) и выровняли заголовок по центру. Это сделает ваш график более гибким и удобным для пользователей.

3. Создание разных типов интерактивных графиков

Plotly поддерживает широкий выбор интерактивных графиков. Вот некоторые из них:

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

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

Python

import plotly.express as px

# Данные для графика
data = {
    "Время": [1, 2, 3, 4, 5, 6],
    "Температура": [30, 32, 34, 33, 31, 29]
}

fig = px.scatter(data, x="Время", y="Температура", title="Температура во времени")
fig.show()

Гистограмма

Гистограммы полезны для анализа распределения данных и выявления аномалий.

Python

import plotly.express as px

# Данные для графика
data = {
    "Оценки": [3, 4, 4, 5, 5, 5, 6, 6, 6, 6, 7, 7, 7, 8, 9, 10]
}

fig = px.histogram(data, x="Оценки", title="Распределение оценок")
fig.show()

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

Круговые диаграммы помогают отображать процентное соотношение категорий.

Python

import plotly.express as px

# Данные для графика
data = {
    "Категория": ["A", "B", "C", "D"],
    "Доля": [20, 30, 25, 25]
}

fig = px.pie(data, names="Категория", values="Доля", title="Доля категорий")
fig.show()

Применение в реальных проектах

Plotly находит своё применение в различных областях. Рассмотрим пару примеров.

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

Вы также можете интегрировать графики Plotly в Jupyter Notebook, веб-приложения и даже A/B тесты, делая ваше исследование более доступным и наглядным.

Если вы хотите углубить свои знания, обязательно ознакомьтесь с официальной документацией Plotly, где вы найдете массу примеров и идей. А теперь вперед, к созданию интерактивных шедевров! 🚀

Комментарии (3)
ЧТОБЫ ПОСМОТРЕТЬ ВСЕ КОММЕНТАРИИ ИЛИ ОСТАВИТЬ КОММЕНТАРИЙ,
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ
Davich Уровень 44
4 сентября 2025
Первая задача ок. Вторая и третья задача относительно интуитивно понятны. Четвёртая вообще мимо.
Slevin Уровень 64
31 июля 2025
Лекция - полное говно. Потому что задания (начиная со второго) требуют знаний которых нет ни в этой(!) ни в последующих(!!) лекциях. Зато своих говношуток напихали три страницы. Четвертая задача: "правильное решение" - не работает, потому что: >>> ValueError: Trace type 'pie' is not compatible with subplot type 'xy' at grid position (1, 1) означает, что вы пытаетесь добавить график типа pie (круговую диаграмму) в подграфик (subplot), который рассчитан на оси типа 'xy' (линейные, точечные и т.п.). В Plotly типы подграфиков должны соответствовать типу данных.

specs=[[{'type':'domain'}, {'type':'xy'}]]  # Первый подграфик — domain для pie
Edf Уровень 64
11 марта 2025
как по мне последние две задачи вообще простираются далеко за рамки полученных знаний