工作日和小时平均参与度的热图

Heatmap of average engagement across weekdays and hour if the day

我有这样一个数据框

Engagement   ...    Weekday    Hour
13000        ...    3          12
25000        ...    4          19
9000         ...    0          23
...          ...    ...        ...

我想用 seaborn(或 matplot)绘制一个热图,显示每个工作日和每小时的平均参与度,工作日在 x 轴上,小时在 y 轴上,颜色强度对于参与价值。 应该是这样的

尝试:

import pandas as pd
import numpy as np
import seaborn as sns
import matplotlib.pyplot as plt

rng = np.random.default_rng(2022)
df = pd.DataFrame({'Engagement': rng.integers(1000, 100000, 1000),
                   'Weekday': rng.integers(0, 7, 1000),
                   'Hour': rng.integers(0, 24, 1000)})

out = df.groupby(['Hour', 'Weekday'])['Engagement'].mean().unstack()
sns.heatmap(out)
plt.show()