Джейд Картер – Библиотеки Python Часть 2. Практическое применение (страница 21)
fig.show()
```
Объяснение:
– Используем `go.Heatmap` для отображения данных в виде тепловой карты.
– Параметр `colorscale` задаёт цветовую палитру, визуально усиливая различия между значениями.
Построение трёхмерного графика
Plotly поддерживает трёхмерные визуализации. Например, график, отображающий поверхность функции.
```python
x = np.linspace(-5, 5, 50)
y = np.linspace(-5, 5, 50)
X, Y = np.meshgrid(x, y)
Z = np.sin(np.sqrt(X**2 + Y**2))
fig = go.Figure(data=[go.Surface(z=Z, x=X, y=Y)])
fig.update_layout(
title='3D График поверхности',
scene=dict(
xaxis_title='X',
yaxis_title='Y',
zaxis_title='Z'
)
)
fig.show()
```
Особенности:
– Используем `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(