使用其他文本文件中的列信息从seaborn重新排序热图

时间:2019-03-16 05:17:29

标签: python pandas matplotlib seaborn heatmap

我编写了一个python脚本来读取通过CSV文本文件提供的距离矩阵。这个距离矩阵显示了不同动物物种之间的差异,我正在尝试使用另一条仅有一排订购信息的CSV文件中的数据,以不同的方式(饮食,家族,属等)对它们进行排序。使用的代码在这里:

import pandas as pd
import seaborn as sns
import matplotlib.pyplot as mp

dietCols = pd.read_csv("label_diet.txt", header=None)
df = pd.read_csv("distance_matrix.txt", header=None)

ax = sns.heatmap(df)
fig = ax.get_figure()
fig.savefig("fig1.png")
mp.clf()

dfDiet = pd.read_csv("distance_matrix.txt", header=None, names=dietCols)

ax2 = sns.heatmap(dfDiet, linewidths=0)
fig2 = ax2.get_figure()
fig2.savefig("fig2.png")
mp.clf()

绘制距离矩阵时,原始图形如下所示:

original heatmap without issues

但是,当从文本文件中读取其他命名信息时,生成的图形只有一列,看起来像这样:

heatmap with attempted column orderings

您可以看到矩阵数据被用作行标签,但我不确定为什么会这样。提供的某些行没有值,因此将其列为“ NaN”,因此我不确定这是否会引起问题。有没有简单的方法可以使用外部文件订购此距离矩阵?任何帮助将不胜感激!

0 个答案:

没有答案