一文玩转Seaborn热力图中刻度标签设置 |
您所在的位置:网站首页 › ae时间轴刻度怎么调整 › 一文玩转Seaborn热力图中刻度标签设置 |
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()运行后结果如下: 观察上述刻度标签,发现展示的文本刻度标签都比较长,我们可以使用函数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()运行后结果如下:(所有的刻度标签上的文字都变成了缩写) 事实上,除了可以修改刻度标签显示文本缩写来避免文本显示时的重叠外,我们也可以调整刻度标签上文字显示的方向来达到类似效果,确保每个文本都可以独立显示出来。 首先我们来更新我们的数据集来包含更多的数据,如下: 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()运行后结果如下: 更近一步,我们也可以修改刻度标签显示文本字体的大小,来避免不同刻度标签重叠的问题,代码如下: 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()输出如下: 事实上,我们也可以控制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()结果如下: 我们也可以将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()得到结果如下: 如果我们需要将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()运行后结果如下: 本文重点介绍了在Seaborn库中调整绘制热力图时控制刻度标签的几种方法,使用这些方法可以可以游刃有余的来控制这些刻度标签的显示。 您学废了嘛? |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |