“之前我们已经学习过利用matplotlib绘制热图,这一节我们将主要学习利用Seaborn绘制热图并可以对样本进行聚类。并设置聚类标签。”
热图
之前我们有学习过利用matplotlib绘制热图,比如:
import numpy as np``import matplotlib.pyplot as plt`` ``# 创建模拟数据``data = np.random.rand(5, 5)`` ``# 设置行和列标签``row_labels = ['Row 1', 'Row 2', 'Row 3', 'Row 4', 'Row 5']``col_labels = ['Col 1', 'Col 2', 'Col 3', 'Col 4', 'Col 5']`` ``# 创建热图``plt.imshow(data, cmap='coolwarm', aspect='auto')`` ``# 添加行和列标签``plt.xticks(range(len(col_labels)), col_labels)``plt.yticks(range(len(row_labels)), row_labels)`` ``# 添加颜色条``plt.colorbar()`` ``# 添加标题和标签``plt.title('Heatmap Example')``plt.xlabel('Columns')``plt.ylabel('Rows')`` ``# 显示图像``plt.show()``
输出:
但有时这种绘图方式满足不了我们的需求,比如我们在进行转录组数据分析时,希望将其聚类结果一并进行展示,这时候我们就需要使用Seaborn进行绘制。
Seaborn 是一个基于 Matplotlib 的数据可视化库,专注于为统计数据和信息可视化提供更高层次的界面。它提供了一些独特的绘图样式和功能,可以更轻松地创建各种统计图表、热图、分布图、回归图等。
import seaborn as sns``import matplotlib.pyplot as plt`` ``expression_data = [` `[10, 15, 12, 18, 22],` `[5, 8, 9, 10, 12],` `[15, 20, 18, 22, 25],` `[8, 10, 14, 16, 20]``]`` ``# 样本标签和基因名称``sample_labels = ['Sample 1', 'Sample 2', 'Sample 3', 'Sample 4', 'Sample 5']``gene_labels = ['Gene A', 'Gene B', 'Gene C', 'Gene D']`` ``# 创建热图``sns.set()``plt.figure(figsize=(10, 6))``sns.heatmap(expression_data, annot=True, fmt="d", cmap="YlGnBu", xticklabels=sample_labels, yticklabels=gene_labels)``plt.title("Expression Heatmap")``plt.xlabel("Samples")``plt.ylabel("Genes")``plt.show()
输出: