target="_blank" rel="nofollow" href="#_6.jpg"/>
Особенности:
– Используем `go.Surface` для построения трёхмерной поверхности.
– Параметры `scene` задают подписи к осям в трёхмерном пространстве.
Интерактивность с помощью виджетов
Plotly позволяет добавлять интерактивные элементы, такие как слайдеры. Например, график, где пользователь может выбирать диапазон времени.
```python
from plotly.subplots import make_subplots
years = ['2020', '2021', '2022', '2023']
values = [500, 700, 800, 600]
fig = make_subplots(rows=1, cols=1)
fig.add_trace(go.Scatter(
x=years,
y=values,
mode='lines+markers',
name='Yearly Data'
))
fig.update_layout(
title='Интерактивный график с выбором диапазона',
xaxis=dict(rangeslider=dict(visible=True)), # Добавляем ползунок
template='plotly_white'
)
fig.show()
```
Интерактивность:
– Ползунок позволяет выбирать диапазон данных на оси X.
– Это полезно для работы с временными рядами.
Plotly – универсальный инструмент для создания интерактивных графиков. Благодаря множеству типов графиков и богатым возможностям настройки, библиотека подходит для самых разнообразных задач: от анализа данных до их визуальной презентации. Используя Plotly, вы можете не только создавать красивые графики, но и предоставлять пользователям возможность активно взаимодействовать с ними.
Задача 1: Построение графика изменения температуры
Описание:
Имеется набор данных о температуре за неделю:
– Дни: `['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday']`
– Температура: `[15, 17, 20, 22, 19, 18, 16]`
Постройте линейный график, отображающий изменение температуры. Подпишите оси и добавьте интерактивность.
Решение:
```python
import plotly.graph_objects as go
# Данные
days = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday']
temperatures = [15, 17, 20, 22, 19, 18, 16]
# Построение графика
fig = go.Figure()
fig.add_trace(go.Scatter(
x=days,
y=temperatures,
mode='lines+markers',
name='Temperature',
line=dict(color='blue', width=2),
marker=dict(size=8)
))
# Настройка графика
fig.update_layout(
title='Изменение температуры за неделю',
xaxis_title='Дни недели',
yaxis_title='Температура (°C)',
template='plotly_white'
)
# Показ графика
fig.show()
```
Задача 2: Построение круговой диаграммы
Описание:
Имеется информация о продажах по категориям:
– Категории: `['Electronics', 'Clothing', 'Groceries', 'Books', 'Furniture']`
– Продажи: `[1200, 1500, 800, 600, 900]`
Постройте круговую диаграмму, отображающую доли продаж по категориям.
Решение:
```python
import plotly.graph_objects as go
# Данные
categories = ['Electronics', 'Clothing', 'Groceries', 'Books', 'Furniture']
sales = [1200, 1500, 800, 600, 900]
# Построение круговой диаграммы
fig = go.Figure(data=[go.Pie(
labels=categories,
values=sales,
hole=0.4 # Делает диаграмму "пончиковой"
)])
# Настройка графика
fig.update_layout(
title='Распределение продаж по категориям',
template='plotly_white'
)
# Показ графика
fig.show()
```