如何设置Python热力图的横纵坐标字体

在数据可视化过程中,热力图是一种非常有效的工具,它能够直观地展示数据的密度或频率。使用Python的seabornmatplotlib库,我们可以轻松绘制出美观的热力图,并对其进行个性化的设置,包括横纵坐标的字体格式。

需求分析

假设我们有一个包含不同城市年度销售数据的矩阵。我们希望通过热力图展示每个城市的销售情况,并设置横纵坐标的字体为“微软雅黑”,字体大小为12。

环境准备

首先,你需要确保已经安装了以下库:

pip install matplotlib seaborn pandas

数据准备

接下来,我们创建一个包含城市和年度销售数据的示例数据框:

import pandas as pd
import numpy as np

# 创建示例数据
data = {
    '2019': [10, 20, 15, 25],
    '2020': [15, 25, 35, 20],
    '2021': [20, 15, 30, 25],
}
cities = ['北京', '上海', '广州', '深圳']
df = pd.DataFrame(data, index=cities)

绘制热力图

使用seaborn绘制热力图时,我们可以通过set_xlabelset_ylabel函数来设置坐标的字体格式。

import seaborn as sns
import matplotlib.pyplot as plt

# 创建热力图
plt.figure(figsize=(8, 6))
heatmap = sns.heatmap(df, annot=True, fmt='d', cmap='YlGnBu')

# 设置字体
for label in (heatmap.get_xticklabels() + heatmap.get_yticklabels()):
    label.set_size(12)  # 设置字体大小
    label.set_fontname('微软雅黑')  # 设置字体

plt.xlabel('年份', fontsize=12, fontname='微软雅黑')
plt.ylabel('城市', fontsize=12, fontname='微软雅黑')
plt.title('城市年度销售热力图', fontsize=16, fontname='微软雅黑')
plt.show()

饼状图示例

在热力图中,我们也可以展示不同城市的销售比例,此时可以绘制一个饼状图:

# 计算各城市总销售额
sales_total = df.sum(axis=1)

# 绘制饼状图
plt.figure(figsize=(6, 6))
plt.pie(sales_total, labels=cities, autopct='%1.1f%%', startangle=90)
plt.title('城市销售比例', fontsize=16, fontname='微软雅黑')
plt.axis('equal')  # 使饼状图为圆形
plt.show()

表格展示

为了更好地展示数据,我们可以将数据结果以表格形式展示:

| 城市 | 2019 | 2020 | 2021 |
|------|------|------|------|
| 北京 |  10  |  15  |  20  |
| 上海 |  20  |  25  |  15  |
| 广州 |  15  |  35  |  30  |
| 深圳 |  25  |  20  |  25  |

结尾

通过以上步骤,我们成功地绘制了热力图,并设置了横纵坐标的字体。饼状图的添加使得数据的表示更加直观,而表格则提供了更详细的数据信息。这些技巧对进一步的数据分析和可视化都具有重要意义,帮助我们更好地理解数据背后的故事。希望这篇文章能够帮助你在数据可视化方面更进一步!