Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/282.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 从列表列表中绘制热图_Python_Plot_Heatmap - Fatal编程技术网

Python 从列表列表中绘制热图

Python 从列表列表中绘制热图,python,plot,heatmap,Python,Plot,Heatmap,具有包含变量列表(大小不同)的列表: res = [[0.01, 0.9, 0.46], [0.64, 0.24], [0.87, 0.99, 0.47, 0.75], ...] (请注意,实际列表中每个包含约3000个变量) 让我们说: x = [0, 1, 2, ...] 有没有办法用y轴上的res值来制作热图 例如,以下列表之一的热图: 我只想为每个列表添加这些数据,并将它们放在同一个热图上为了绘制热图,您可能需要将数据插入到常规网格中。下面使用scipy.interpolate.i

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

res = [[0.01, 0.9, 0.46], [0.64, 0.24], [0.87, 0.99, 0.47, 0.75], ...]
(请注意,实际列表中每个包含约3000个变量)

让我们说:

x = [0, 1, 2, ...]
有没有办法用y轴上的res值来制作热图

例如,以下列表之一的热图:


我只想为每个列表添加这些数据,并将它们放在同一个热图上

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

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

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, [])

你是说y轴上的res和x轴上的x?你应该更详细地解释你的问题。@rnso是的,x的长度和res的长度是一样的吗?是否要根据每个x对应列表的平均值(以res为单位)绘制每个x?进一步解释你的问题。@RN所以想象一个散点图。对于x轴上的每个值,它都有一个y轴上res列表中的值列表。有没有一种方法可以为整个事件制作一张热图?你能详细说明一下吗?您的意思是使用插值使所有列表的大小相同吗?是的,确切地说,当前整个列表中的每个列表都有不同的长度。一旦它们的长度相同,就可以如上所述使用seaborn或通过类似plt.contour的方式进行绘图。下面介绍如何在matplotlib中等高线绘制不规则间距的数据,但它也有一个插值阶段。首先感谢您的帮助。不过我想出了一个解决我的问题的办法,我会张贴它没有问题,很高兴你找到了一个解决办法!