Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/314.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_Pandas_Matplotlib_Seaborn - Fatal编程技术网

Python 使用不同大小列表的热图

Python 使用不同大小列表的热图,python,pandas,matplotlib,seaborn,Python,Pandas,Matplotlib,Seaborn,我想用JaroWinkler相似度比较两个不同大小的列表列表_1有5个元素,它来自一个列数据框,例如 List_1=df['Movements'].tolist() i、 e.List_1=[“超现实主义”、“未来主义”、“印象主义”、“现实主义”、“新现实主义”] 而list_2有7个元素: list_2=['romantisme', 'surrealisme', 'realisme','creativité', 'liberté', 'poete','cubism','metaphysiq

我想用JaroWinkler相似度比较两个不同大小的列表<代码>列表_1有
5个
元素,它来自一个列数据框,例如

List_1=df['Movements'].tolist()
i、 e.
List_1=[“超现实主义”、“未来主义”、“印象主义”、“现实主义”、“新现实主义”]

list_2
7个
元素:

list_2=['romantisme', 'surrealisme', 'realisme','creativité', 'liberté', 'poete','cubism','metaphysique'] 
为了计算JaroWinkler距离,我使用以下函数:

jarowinkler = JaroWinkler()
我应用于列
df.Movements
如下:

for m in all_mov:
     df[m] = df.Movements.apply(lambda x: jarowinkler.similarity(x, m))
    np.where(df[m] > 0.1, df[m], np.nan)
我只想使用
seaborn
heat map绘制
jarowinkler.similarity
大于
0.1
的结果

mask = np.zeros_like(df.Movements)
mask[np.triu_indices_from(mask)] = True
with sns.axes_style("white"):
    f, ax = plt.subplots(figsize=(10, 5))
    ax = sns.heatmap(df['Movements'], mask=mask, square=False)
但是,我只能看到正方形的结果(即,只能看到
list_2
中的前5个元素)。 我是否做错了什么(例如,考虑到热图不成正方形)?是否有其他方法可以可视化不同大小列表之间的相似性? 欢迎您提供建议。

您只需执行以下操作:

for m in all_mov:
    #compute similarity
    df[m] = df.Movements.apply(lambda x: jarowinkler.similarity(x, m))

    # filter out low similarity scores
    df[m] = np.where(df[m] > 0.1, df[m], np.nan)

sns.heatmap(data=df.set_index('Movements')[all_mov])
这给了你这样的东西: