为了账号安全,请及时绑定邮箱和手机立即绑定

使用不同大小列表的热图

使用不同大小列表的热图

湖上湖 2022-12-14 21:04:44
我想使用 JaroWinkler 相似性比较两个不同大小的列表。List_1有5元素,它来自列数据框,例如List_1=df['Movements'].tolist()IEList_1=['surrealism', 'futurism', 'impressionism', 'realism', 'neorealism']whilelist_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热图绘制jarowinkler.similarity大于的结果0.1。mask = np.zeros_like(df.Movements)mask[np.triu_indices_from(mask)] = Truewith sns.axes_style("white"):    f, ax = plt.subplots(figsize=(10, 5))    ax = sns.heatmap(df['Movements'], mask=mask, square=False)但是,我只能看到正方形的结果(即仅来自 的前 5 个元素list_2。我做错了什么吗(例如,考虑热图不是平方的)?有没有其他方法可以可视化不同大小列表之间的相似性?建议会很受欢迎。
查看完整描述

1 回答

?
蓝山帝景

TA贡献1843条经验 获得超7个赞

你可以简单地做:


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


查看完整回答
反对 回复 2022-12-14
  • 1 回答
  • 0 关注
  • 61 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号