реклама
Бургер менюБургер меню

Джейд Картер – Библиотеки Python Часть 2. Практическое применение (страница 24)

18

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

]

)