如何用python画热力图,将横坐标和纵坐标设为中文
时间: 2025-04-05 07:04:05 浏览: 69
### 使用 Python 绘制带有中文标签的热力图
要使用 Matplotlib 和 Seaborn 库来绘制带有中文标签的热力图,可以通过设置字体属性以支持中文显示。以下是详细的实现过程:
#### 导入必要的库
为了完成此任务,需要先导入 `matplotlib` 和 `seaborn` 这两个核心库[^1]。
```python
import matplotlib.pyplot as plt
import seaborn as sns
import numpy as np
```
#### 设置中文字体
默认情况下,Matplotlib 不会自动识别并渲染中文字符。因此,在绘制图形之前,需指定一个能够正确显示中文的字体文件。通常可以选择常见的中文字体,例如 SimHei (黑体)。
```python
from matplotlib import rcParams
rcParams['font.family'] = 'SimHei' # 设置全局字体为黑体
plt.rcParams['axes.unicode_minus'] = False # 解决负号 '-' 显示异常的问题
```
#### 创建数据集
假设我们有一个二维数组作为热力图的数据源,并定义对应的横纵坐标名称列表。
```python
data = np.random.rand(5, 5) * 100 # 随机生成一些数值范围内的矩阵数据
x_labels = ['星期一', '星期二', '星期三', '星期四', '星期五']
y_labels = ['上午', '中午', '下午', '晚上', '深夜']
```
#### 绘制热力图
利用 Seaborn 的 `heatmap()` 函数可以轻松构建热力图。同时传入自定义参数调整样式以及添加中文标注。
```python
sns.set() # 初始化Seaborn主题风格
fig, ax = plt.subplots(figsize=(8, 6)) # 调整画布大小
cmap = sns.color_palette("coolwarm", as_cmap=True)
sns_heatmap = sns.heatmap(data,
annot=True, fmt=".1f",
cmap=cmap,
xticklabels=x_labels,
yticklabels=y_labels,
cbar_kws={"label": "热度值"},
linewidths=.5,
square=False)
ax.set_title('带中文标签的热力图示例')
ax.set_xlabel('时间轴 - 横向维度')
ax.set_ylabel('时间段 - 纵向维度')
plt.xticks(rotation=45) # 可选旋转角度让文本更易读取
plt.yticks(rotation=0)
plt.tight_layout()
plt.show()
```
上述代码片段展示了完整的流程,包括但不限于加载所需模块、配置环境变量使得汉字正常呈现、准备虚拟样本资料供演示用途、调用绘图命令最后美化布局细节等方面的内容[^2]。
#### 结果说明
执行以上脚本后将会弹出窗口显示出一张标准形式化的热力图作品,其中既含有精确到一位小数点位置的具体数值标记又具备清晰可辨认的双语描述信息——即顶部标题栏采用英文表述而其余部分则全部切换成简体中文书写习惯下的表达方式。
---
阅读全文
相关推荐


















