一文玩转Seaborn热力图中刻度标签设置

您所在的位置:网站首页 ae时间轴刻度怎么调整 一文玩转Seaborn热力图中刻度标签设置

一文玩转Seaborn热力图中刻度标签设置

2024-07-16 16:08| 来源: 网络整理| 查看: 265

1. 引言

在本教程中,我们将学习如何设置Seaborn库中热力图的刻度标签,包括设置自定义标签、调整旋转标签、控制字体大小、甚至隐藏标签等等。

闲话少说,我们直接开始吧!

2.举个栗子

首先我们来看个栗子,首先让我们导入我们所需要的库,如下所示:

import seaborn as sns import matplotlib.pyplot as plt import pandas as pd import numpy as np

接着我们使用以下代码来生成我们需要的数据,代码如下:

np.random.seed(0) data = np.random.rand(4, 6) metrics = ['Metric A', 'Metric B', 'Metric C', 'Metric D'] days = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'] df = pd.DataFrame(data, index=metrics, columns=days)

接着我们来绘制我们默认的热力图,代码如下:

plt.figure(figsize=(10, 4)) sns.heatmap(df, annot=True) plt.show()

运行后结果如下: 在这里插入图片描述

3.修改刻度标签文字显示

观察上述刻度标签,发现展示的文本刻度标签都比较长,我们可以使用函数set_xticklabels和函数set_yticklabels来修改对应的刻度标签,代码如下:

plt.figure(figsize=(10, 4)) ax = sns.heatmap(df, annot=True) ax.set_xticklabels(['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'], rotation=45) ax.set_yticklabels(['A', 'B', 'C', 'D'], rotation=0) plt.show()

运行后结果如下:(所有的刻度标签上的文字都变成了缩写)

在这里插入图片描述

4.修改刻度标签文字方向

事实上,除了可以修改刻度标签显示文本缩写来避免文本显示时的重叠外,我们也可以调整刻度标签上文字显示的方向来达到类似效果,确保每个文本都可以独立显示出来。 首先我们来更新我们的数据集来包含更多的数据,如下:

extended_days = days + ['Sunday', 'Extra Day 1', 'Extra Day 2'] extended_data = np.random.rand(4, len(extended_days)) df_extended = pd.DataFrame(extended_data, index=metrics, columns=extended_days

扩充后的热力图的效果如下:

plt.figure(figsize=(12, 4)) sns.heatmap(df_extended, annot=True) plt.show()

结果如下: 在这里插入图片描述

可以看到,当数据的列数增多之后,刻度标签上的显示文本就会显得很紧凑,此时我们来尝试将显示的文字方向进行选择,代码如下:

plt.figure(figsize=(12, 4)) ax = sns.heatmap(df_extended, annot=True) ax.set_xticklabels(ax.get_xticklabels(), rotation=90) ax.set_yticklabels(ax.get_yticklabels(), rotation=0) plt.show()

运行后结果如下: 在这里插入图片描述

5.修改刻度标签文字大小

更近一步,我们也可以修改刻度标签显示文本字体的大小,来避免不同刻度标签重叠的问题,代码如下:

plt.figure(figsize=(12, 4)) ax = sns.heatmap(df_extended, annot=True) plt.xticks(fontsize=12, rotation=90) plt.yticks(fontsize=12, rotation=0) plt.show()

输出如下: 在这里插入图片描述

6.修改刻度标签对齐方式

事实上,我们也可以控制ha变量来调整刻度标签水平对齐,控制va变量来调整刻度标签垂直对齐,如下:

plt.figure(figsize=(12, 4)) ax = sns.heatmap(df_extended, annot=True) ax.set_xticklabels(ax.get_xticklabels(), ha='center') # Horizontal alignment ax.set_yticklabels(ax.get_yticklabels(), va='center') # Vertical alignment plt.show()

结果如下: 在这里插入图片描述

7. 修改x轴标签至图像顶部

我们也可以将x轴的刻度标签移动到图像顶部,代码如下:

plt.figure(figsize=(12, 4)) ax = sns.heatmap(df_extended, annot=True) ax.xaxis.tick_top() # Move x-axis labels to top ax.set_xticklabels(ax.get_xticklabels(), rotation=45, ha='left') plt.show()

得到结果如下: 在这里插入图片描述

8. 反转y轴标签

如果我们需要将y轴的刻度标签文字进行反转,我们可以使用invert_yaxis来实现上述目标,代码如下:

# Reversing the y-axis plt.figure(figsize=(12, 4)) ax = sns.heatmap(df_extended, annot=True) ax.invert_yaxis() plt.show()

运行结果如下: 在这里插入图片描述

可以看到,y轴刻度标签文本从上往下由Metric A --> Metric D,转变成从下往上由Metric A --> Metric D

9. 隐藏刻度标签

同时,我们也可以通过将 xticks和yticks设置为空,来实现隐藏刻度标签的目的。代码如下:

plt.figure(figsize=(12, 4)) ax = sns.heatmap(df_extended, annot=True) plt.xticks([]) plt.yticks([]) plt.show()

运行后结果如下: 在这里插入图片描述

10.总结

本文重点介绍了在Seaborn库中调整绘制热力图时控制刻度标签的几种方法,使用这些方法可以可以游刃有余的来控制这些刻度标签的显示。

您学废了嘛?



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3