从列表列表中绘制热图

Plot heatmap from list of lists

有一个包含变量列表(不同大小)的列表:

res = [[0.01, 0.9, 0.46], [0.64, 0.24], [0.87, 0.99, 0.47, 0.75], ...]

(请注意,实际列表每个包含约 3000 个变量)

让我们说:

x = [0, 1, 2, ...]

有没有办法用 res 的值在 y 轴上制作热图?

例如,这是其中一个列表的热图:

我只想对每个列表都这样做,并将它们都放在同一个热图上

为了绘制热图,您可能需要将数据插入到常规网格中。以下 使用 scipy.interpolate.interp2d

实现此目的

完成此操作后,您可以使用 seaborn.heatmap 绘制热图:

import seaborn as sns
res = [[0.01, 0.9, 0.46], [0.64, 0.24, 1], [0.87, 0.99, 0.47]]
ax = sns.heatmap(res)

我通过执行以下操作找到了解决方法:

y_ax = []
cpt = 0
for elem in res:
    y_ax.append([cpt]*len(elem))
    cpt += 1

res_flat = sum(res, [])
y_flat = sum(y_ax, [])