pyecharts绘制热
时间: 2025-03-17 12:18:05 浏览: 50
### 使用 Pyecharts 绘制热力图
以下是使用 `Pyecharts` 库绘制热力图的一个具体实现方法和代码示例:
#### 导入必要的模块
为了构建热力图,首先需要导入 `pyecharts.charts.HeatMap` 类以及配置项相关的类。
```python
from pyecharts import options as opts
from pyecharts.charts import HeatMap
import random
```
#### 准备数据
热力图的数据通常是一个二维数组的形式,其中每一行表示一个坐标点及其对应的值。下面展示如何生成模拟数据。
```python
# 构造虚拟数据 (x, y, value)
data = [
[i, j, random.randint(0, 50)]
for i in range(24)
for j in range(7)
]
# 设置横纵轴标签
hours = ["{}".format(i) for i in range(24)]
days = ["Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"]
```
上述代码片段中,`random.randint(0, 50)` 是用来随机生成数值作为热度值[^1]。
#### 创建并渲染热力图
利用准备好的数据和标签信息,可以创建一个简单的热力图实例,并设置一些基本选项。
```python
heatmap = (
HeatMap()
.add_xaxis(hours)
.add_yaxis(
"Heat Map Example",
days,
data,
label_opts=opts.LabelOpts(is_show=True, position="inside"),
)
.set_global_opts(
title_opts=opts.TitleOpts(title="Hot Sale Areas of Winter Clothes"),
visualmap_opts=opts.VisualMapOpts(min_=0, max_=50),
)
)
heatmap.render("heat_map.html") # 将图表保存为 HTML 文件
```
此部分展示了如何通过 `.add_xaxis()` 和 `.add_yaxis()` 方法定义 X 轴与 Y 轴上的类别名称;并通过 `.set_global_opts()` 配置全局属性,比如标题和视觉映射范围[^3]。
---
#### 进阶功能:地图热力图
如果想进一步扩展至地理空间领域,则可借助 Geo 图表组件完成更加复杂的场景分析。例如基于行政区划的地图热力分布效果。
假设已有一份 Excel 数据文件存储着各地区的销售情况记录,那么可以通过 pandas 加载该表格内容后再传递给 PyEcharts 的绘图函数处理[^4]。
```python
import pandas as pd
df = pd.read_excel(r"F:\python数据\寒潮来时冬季衣服热卖地区统计1.xlsx")
geo_data = [[row['province'], row['sales']] for _, row in df.iterrows()]
c = (
Geo(init_opts=opts.InitOpts(width='800px', height='600px'))
.add_schema(maptype="china")
.add("", geo_data, type_=ChartType.HEATMAP)
.set_series_opts(label_opts=opts.LabelOpts(is_show=False))
.set_global_opts(
visualmap_opts=opts.VisualMapOpts(),
title_opts=opts.TitleOpts(title="Winter Clothing Sales Distribution Across China")
)
).render('winter_clothing_sales_heatmap.html')
```
这里引入了 Pandas 来读取外部 EXCEL 表格资料,并将其转换成适合传参的列表形式。最后调用了 Geo 对象的方法实现了全国范围内省份级别的销量热点区域呈现[^2]。
---
### 总结
综上所述,无论是普通的二维平面还是结合地理位置的信息表达需求下,都可以依靠 Pyecharts 提供的强大 API 接口快速搭建出满足业务诉求的各种样式热力图作品出来。
阅读全文
相关推荐













