ISBN :
Возрастное ограничение : 12
Дата обновления : 29.01.2025
xaxis_title='Месяцы',
yaxis_title='Регионы'
)
# Показ графика
fig.show()
```
Задача 5: Построение 3D-графика поверхности функции
Описание: Построить 3D-график для функции ( z = cos(x^2 + y^2) cdot *sin(x – y) ) на диапазоне (x) и (y) от (-5) до (5) с использованием более высокой сетки и с улучшенной цветовой гаммой.
Решение:
```python
import numpy as np
import plotly.graph_objects as go
# Данные
x = np.linspace(-5, 5, 100) # Увеличение разрешения
y = np.linspace(-5, 5, 100)
X, Y = np.meshgrid(x, y)
Z = np.cos(X**2 + Y**2) * np.sin(X – Y) # Сложная функция
# Построение 3D-графика
fig = go.Figure(data=[go.Surface(z=Z, x=X, y=Y, colorscale='Viridis')]) # Изменение цветовой гаммы
# Настройка графика
fig.update_layout(
title='3D График сложной поверхности',
scene=dict(
xaxis_title='X',
yaxis_title='Y',
zaxis_title='Z'
),
scene_camera=dict(
eye=dict(x=1.5, y=1.5, z=1.5) # Изменение угла обзора
)
)
# Показ графика
fig.show()
```
Задача 6: Анимация изменения температуры по дням недели
Описание:
Имеется информация о температуре за каждый день недели для нескольких городов:
– Дни: `['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday']`
– Города: `['New York', 'Los Angeles', 'Chicago']`
– Температуры (матрица):
```
New York: [22, 24, 26, 25, 23, 21, 20]
Los Angeles: [30, 31, 29, 28, 27, 26, 25]
Chicago: [15, 18, 20, 17, 16, 14, 12]
```
Создайте анимацию, показывающую изменение температуры для каждого города.
Решение:
```python
import plotly.graph_objects as go
# Данные
days = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday']
cities = ['New York', 'Los Angeles', 'Chicago']
temperatures = {
'New York': [22, 24, 26, 25, 23, 21, 20],
'Los Angeles': [30, 31, 29, 28, 27, 26, 25],
'Chicago': [15, 18, 20, 17, 16, 14, 12]
}
# Создание анимации
fig = go.Figure()
for city in cities:
fig.add_trace(go.Scatter(
x=days,
y=temperatures[city],
mode='lines+markers',
name=city
))
# Настройка анимации
frames = [
go.Frame(
data=[
go.Scatter(
x=days[:i],
y=temperatures[city][:i],
mode='lines+markers',
name=city
)
for city in cities
]
)
for i in range(1, len(days) + 1)
]
fig.update(frames=frames)
# Настройка кнопок
fig.update_layout(
updatemenus=[
dict(
type='buttons',
showactive=False,
buttons=[
dict(label='Play', method='animate', args=[None, {'frame': {'duration': 500, 'redraw': True}}]),
dict(label='Pause', method='animate', args=[[None], {'frame': {'duration': 0, 'redraw': False}}])
]
)
Все книги на сайте предоставены для ознакомления и защищены авторским правом