Python中使用Seaborn的集群Map

2w3kk1z5  于 2023-08-08  发布在  Python
关注(0)|答案(2)|浏览(101)

我试图使用Seaborn在Python上创建一个带有树状图的热图,我有一个大约900行的csv文件。我将该文件作为pandas Dataframe 导入,并试图绘制该文件,但大量的行未在热图中表示。我做错了什么?
这是我现在掌握的密码。但热图仅代表大约49行。Here is an image of the clustermap I've obtained,但它没有显示我的所有数据。

import seaborn as sns
import pandas as pd
from matplotlib import pyplot as plt

# Data set
df = pd.read_csv('diff_exp_gene.csv', index_col = 0)

# Default plot
sns.clustermap(df, cmap = 'RdBu', row_cluster=True, col_cluster=True)
plt.show()

字符串

  • 谢谢-谢谢
inn6fuwd

inn6fuwd1#

另一种方法是在matpltlib中使用imshow。我不是很清楚你的问题是什么,但我演示了一种方法,图形点的平面从csv文件

import numpy as np
import matplotlib.pyplot as plt
import csv

infile = open('diff_exp_gene.csv')
df = csv.DictReader(in_file)
temp = np.zeros((128,128), dtype = int)
for row in data:
    if row['TYPE'] == types:
       temp[int(row['Y'])][int(row['X'])] = temp[int(row['Y'])][int(row['X'])] + 1
plt.imshow(temp, cmap = 'hot', origin = 'lower')
plt.show()

字符串

gwbalxhn

gwbalxhn2#

据我所知,适用于seaborn热图的关键字也适用于clustermap,因为sns.clustermap传递给sns.heatmap。在这种情况下,您在示例中需要做的就是将yticklabels=True设置为sns.clustermap()中的关键字参数。这将显示所有900行。
默认情况下,它被设置为“自动”以避免重叠。这同样适用于xticklabels。查看更多:https://seaborn.pydata.org/generated/seaborn.heatmap.html

相关问题