Библиотеки Python Часть 2. Практическое применение - страница 16



'India': [500, 1500, 3000, 6000, 12000, 18000],

'Brazil': [800, 1600, 3200, 6400, 13000, 19000]

}

# Построение графика

fig = go.Figure()

for month, idx in zip(months, range(len(months))):

fig.add_trace(go.Scatter3d(

x=countries,

y=[month] * len(countries),

z=[cases[country][idx] for country in countries],

mode='markers',

marker=dict(size=10, color=[cases[country][idx] for country in countries], colorscale='Viridis'),

name=month

))

# Оформление графика

fig.update_layout(

title='Трёхмерная анимация роста COVID-19',

scene=dict(

xaxis_title='Страна',

yaxis_title='Месяц',

zaxis_title='Число случаев'

),

template='plotly_dark'

)

fig.show()

```



Задача 8: Тепловая карта с аннотациями

Описание:

Имеется таблица оценки студентов по предметам:

– Студенты: `['Alice', 'Bob', 'Charlie', 'Diana']`

– Предметы: `['Math', 'Physics', 'Chemistry', 'Biology']`

– Оценки (матрица):

```

[[85, 90, 78, 92],

[88, 84, 89, 91],

[76, 85, 83, 88],

[90, 92, 80, 87]]

```

Постройте тепловую карту, добавив аннотации с оценками.

Решение:

```python

import plotly.graph_objects as go

# Данные

students = ['Alice', 'Bob', 'Charlie', 'Diana']

subjects = ['Math', 'Physics', 'Chemistry', 'Biology']

grades = [

[85, 90, 78, 92],

[88, 84, 89, 91],

[76, 85, 83, 88],

[90, 92, 80, 87]

]

# Построение тепловой карты

fig = go.Figure(data=go.Heatmap(

z=grades,

x=subjects,

y=students,

colorscale='Blues',

showscale=True

))

# Добавление аннотаций

for i, row in enumerate(grades):

for j, val in enumerate(row):

fig.add_annotation(

x=subjects[j],

Если вам понравилась книга, поддержите автора, купив полную версию по ссылке ниже.

Продолжить чтение