【问题标题】:Clustermapping in Python using Seaborn使用 Seaborn 在 Python 中进行聚类映射
【发布时间】:2018-07-26 16:16:54
【问题描述】:

我正在尝试使用 Seaborn 在 Python 上创建带有树状图的热图,并且我有一个包含大约 900 行的 csv 文件。我将文件作为熊猫数据框导入并尝试绘制它,但热图中没有表示大量行。我做错了什么?

这是我现在拥有的代码。但热图仅代表大约 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()

谢谢。

【问题讨论】:

标签: python python-3.x heatmap seaborn


【解决方案1】:

另一种方法是在 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()

【讨论】:

  • 类型定义是什么?
  • 对于这个具体的例子,我正在制作一个位置所有类型企业的热图。因此,我正在遍历数据框中的所有类型,并绘制与我正在寻找的类型匹配的热图。 types 被定义为我正在寻找的特定类型
【解决方案2】:

据我所知,适用于 seaborn heatmaps 的关键字也适用于 clustermap,因为 sns.clustermap 传递给 sns.heatmap。在这种情况下,您需要在示例中将yticklabels=True 设置为sns.clustermap() 中的关键字参数。这将显示所有 900 行。

默认情况下,它设置为“自动”以避免重叠。这同样适用于 xticklabels。在此处查看更多信息:https://seaborn.pydata.org/generated/seaborn.heatmap.html

【讨论】:

    猜你喜欢
    • 2019-10-24
    • 2011-01-02
    • 1970-01-01
    • 2018-10-12
    • 2012-03-24
    • 1970-01-01
    • 2015-05-23
    • 2017-08-27
    • 2015-05-13
    相关资源
    最近更新 更多