如何设置Python热力图的横纵坐标字体
在数据可视化过程中,热力图是一种非常有效的工具,它能够直观地展示数据的密度或频率。使用Python的seaborn
和matplotlib
库,我们可以轻松绘制出美观的热力图,并对其进行个性化的设置,包括横纵坐标的字体格式。
需求分析
假设我们有一个包含不同城市年度销售数据的矩阵。我们希望通过热力图展示每个城市的销售情况,并设置横纵坐标的字体为“微软雅黑”,字体大小为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_xlabel
和set_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 |
结尾
通过以上步骤,我们成功地绘制了热力图,并设置了横纵坐标的字体。饼状图的添加使得数据的表示更加直观,而表格则提供了更详细的数据信息。这些技巧对进一步的数据分析和可视化都具有重要意义,帮助我们更好地理解数据背后的故事。希望这篇文章能够帮助你在数据可视化方面更进一步!