Pyecharts绘制热力图的说明+代码实战

引言

热力图在数据可视化中是一种强大的工具,可以直观地展示数据的分布情况和变化趋势。Pyecharts是一个基于Echarts的Python可视化库,提供了丰富的图表类型,包括热力图。在本文中,我们将深入探讨Pyecharts绘制多种炫酷热力图的参数说明和实际代码实战。

准备工作

首先,确保你已经安装了Pyecharts库。如果没有安装,可以使用以下命令进行安装:

pip install pyecharts

接下来,我们将使用一些示例数据来演示多种炫酷热力图的绘制。

# 导入必要的库
from pyecharts import options as opts
from pyecharts.charts import HeatMap
import random# 生成示例数据
data = [[i, j, random.randint(0, 100)] for i in range(24) for j in range(7)]

基础热力图

首先,让我们创建一个基础的热力图。基础热力图只需提供数据和坐标轴信息即可。

# 创建基础热力图
heatmap_basic = (HeatMap().add_xaxis(list(range(24))).add_yaxis(series_name="",yaxis_data=list(range(7)),value= data,label_opts=opts.LabelOpts(is_show=True, position="inside"),).set_global_opts(title_opts=opts.TitleOpts(title="基础热力图示例"),visualmap_opts=opts.VisualMapOpts(),)
)
# 渲染图表
heatmap_basic.render("heatmap_basic.html")

在这个基础热力图中,我们使用了add_xaxisadd_yaxis方法分别指定x轴和y轴的数据,value参数传入了我们准备好的示例数据。label_opts用于显示数据标签,set_global_opts用于设置全局选项,包括标题和视觉映射。

自定义热力图

接下来,让我们创建一个自定义热力图,调整颜色映射、热力点大小和其他样式。

# 创建自定义热力图
heatmap_custom = (HeatMap().add_xaxis(list(range(24))).add_yaxis(series_name="",yaxis_data=list(range(7)),value= data,label_opts=opts.LabelOpts(is_show=True, position="inside"),itemstyle_opts=opts.ItemStyleOpts(color="green", opacity=0.7, border_color="white", border_width=1),).set_global_opts(title_opts=opts.TitleOpts(title="自定义热力图示例"),visualmap_opts=opts.VisualMapOpts(min_=0, max_=100, range_color=["#F5DEB3", "#FF6347", "#800000"]),)
)
# 渲染图表
heatmap_custom.render("heatmap_custom.html")

在这个示例中,我们通过itemstyle_opts参数调整了热力点的颜色、透明度、边框颜色和边框宽度。visualmap_opts用于调整视觉映射的范围和颜色。
在这里插入图片描述

炫酷动态热力图

最后,我们来创建一个炫酷的动态热力图,展示数据随时间的变化。

# 创建动态热力图
heatmap_dynamic = (HeatMap().add_xaxis(list(range(24))).add_yaxis(series_name="",yaxis_data=list(range(7)),value= data,label_opts=opts.LabelOpts(is_show=True, position="inside"),).set_global_opts(title_opts=opts.TitleOpts(title="动态热力图示例"),visualmap_opts=opts.VisualMapOpts(),timeline_opts=opts.TimelineOpts(is_auto_play=True,play_interval=500,pos_bottom="5%",pos_left="center",),)
)
# 添加时间轴数据
for i in range(7):heatmap_dynamic.add(series_name="",data_pair=list(zip(list(range(24)), [i] * 24, [random.randint(0, 100) for _ in range(24)])),)
# 渲染图表
heatmap_dynamic.render("heatmap_dynamic.html")

在动态热力图中,我们通过timeline_opts参数启用时间轴,然后通过add方法逐步添加每个时间点的数据。is_auto_play用于设置是否自动播放,play_interval设置播放间隔。

炫酷热力图的更多定制化

除了基础、自定义和动态热力图外,Pyecharts还提供了更多高级的定制化选项,使你能够创建炫酷且个性化的热力图。

空间热力图

有时候,我们需要在空间中展示数据的分布情况。以下是一个简单的三维热力图的例子:

from pyecharts.charts import Scatter3D# 生成示例数据
data_3d = [[i, j, random.randint(0, 100)] for i in range(24) for j in range(7)]# 创建三维热力图
scatter3d = (Scatter3D().add("", data_3d).set_global_opts(title_opts=opts.TitleOpts(title="三维热力图示例"),visualmap_opts=opts.VisualMapOpts(min_=0, max_=100, range_color=["#F5DEB3", "#FF6347", "#800000"]),)
)
# 渲染图表
scatter3d.render("3d_heatmap.html")

这个例子中,我们使用了Scatter3D图表来创建三维散点图,通过visualmap_opts设置了颜色映射。
在这里插入图片描述

地图热力图

如果你有地理空间数据,你可以使用地图热力图来展示数据在地图上的分布情况。以下是一个简单的地图热力图的例子:

from pyecharts.charts import Geo# 生成示例数据
data_geo = [(f"City{i}", random.randint(0, 100)) for i in range(1, 6)]# 创建地图热力图
geo = (Geo().add_schema(maptype="china").add("热力图",data_geo,type_=ChartType.HEATMAP,label_opts=opts.LabelOpts(is_show=True),).set_global_opts(title_opts=opts.TitleOpts(title="地图热力图示例"),visualmap_opts=opts.VisualMapOpts(min_=0, max_=100, range_color=["#F5DEB3", "#FF6347", "#800000"]),)
)
# 渲染图表
geo.render("map_heatmap.html")

在这个例子中,我们使用了Geo图表,通过add_schema添加了地图信息,然后通过add方法添加了热力图数据。

热力图的交互功能

Pyecharts提供了丰富的交互功能,使用户可以更灵活地探索热力图数据。以下是一个带有工具栏和数据缩放的热力图的例子:

# 创建交互热力图
heatmap_interactive = (HeatMap().add_xaxis(list(range(24))).add_yaxis(series_name="",yaxis_data=list(range(7)),value= data,label_opts=opts.LabelOpts(is_show=True, position="inside"),).set_global_opts(title_opts=opts.TitleOpts(title="交互热力图示例"),visualmap_opts=opts.VisualMapOpts(),toolbox_opts=opts.ToolboxOpts(is_show=True, feature={"save_as_image": {}}),datazoom_opts=opts.DataZoomOpts(orient="horizontal"),)
)
# 渲染图表
heatmap_interactive.render("heatmap_interactive.html")

在这个例子中,我们通过toolbox_opts添加了工具栏,datazoom_opts添加了数据缩放功能。

在这里插入图片描述

进阶应用:热力图与其他图表的联动

Pyecharts提供了强大的图表联动功能,让你能够在一个页面上同时展示多个图表,并实现它们之间的联动。以下是一个热力图与折线图联动的例子:

from pyecharts.charts import Line# 生成示例折线图数据
data_line = [random.randint(0, 100) for _ in range(24)]# 创建联动图表
heatmap_linked = (HeatMap().add_xaxis(list(range(24))).add_yaxis(series_name="",yaxis_data=list(range(7)),value=data,label_opts=opts.LabelOpts(is_show=True, position="inside"),).set_global_opts(title_opts=opts.TitleOpts(title="热力图与折线图联动示例"),visualmap_opts=opts.VisualMapOpts(),toolbox_opts=opts.ToolboxOpts(is_show=True, feature={"save_as_image": {}, "data_zoom": {}}),datazoom_opts=opts.DataZoomOpts(orient="horizontal"),)
)# 创建折线图
line_linked = (Line().add_xaxis(list(range(24))).add_yaxis("折线图", data_line, label_opts=opts.LabelOpts(is_show=False)).set_global_opts(title_opts=opts.TitleOpts(title="折线图示例"),toolbox_opts=opts.ToolboxOpts(is_show=True, feature={"save_as_image": {}, "data_zoom": {}}),datazoom_opts=opts.DataZoomOpts(orient="horizontal"),)
)# 使用Grid实现图表联动
grid = (Grid().add(heatmap_linked, grid_opts=opts.GridOpts(pos_left="10%", pos_right="10%")).add(line_linked, grid_opts=opts.GridOpts(pos_left="10%", pos_right="10%"))
)
# 渲染图表
grid.render("heatmap_line_linked.html")

在这个例子中,我们使用了Grid图表容器来将热力图和折线图放在同一个页面上,并通过grid_opts设置它们的位置。两个图表之间通过datazoom_opts实现了联动效果,可以通过工具栏的数据缩放功能来调整展示的时间范围。

通过掌握这些进阶应用,你可以更灵活地结合不同类型的图表,实现更复杂的数据展示和分析。

结语

本文深入探讨了Pyecharts绘制多种炫酷热力图的参数说明和代码实战。从基础的热力图到空间热力图、地图热力图,再到图表的联动,希望这些例子能够帮助你更好地应用Pyecharts进行数据可视化工作。随着你在使用Pyecharts的过程中的不断尝试和实践,你将能够更深入地理解和掌握这个强大的可视化库。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/44120.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Qt 创建的窗口一闪而过【已解决】

Qt 创建的窗口一闪而过 引言一、详细的解决方案 - 附代码二、参考博文 引言 创建的窗口一闪而过,就是创建完立马被销毁了,常见情况是在一个函数中创建窗口并show() - 即创建在了栈上,函数结束局部变量(窗口)自动被释放。主流的解决方法有两种…

如何使用css把input框的number属性的右侧小按钮去掉

在HTML中&#xff0c;当<input>元素的type属性被设置为number时&#xff0c;浏览器通常会默认显示一个小的上下箭头按钮&#xff08;通常位于输入框的右侧&#xff09;&#xff0c;用于允许用户通过点击增加或减少输入的值。然而&#xff0c;有时候为了设计的一致性或其他…

C语言快速入门

Linux C 的编译流程 C 编译器 gcc GNUmsvc windowsclang 苹果intel…cc 默认Linux c语言编译器 程序设计语言分类 编译型 C、C、java 把源代码转换成机械指令&#xff08;X86 电脑、ARM 手机&#xff09;编译做了类型安全检查&#xff0c;安全性能高灵活差 解释型 Python、…

三生随记——毛巾的诅咒

在一个沉闷的傍晚&#xff0c;李明拖着疲惫的身躯回到了家中。一整天的工作让他精疲力竭&#xff0c;此刻他只想赶紧洗个热水澡&#xff0c;然后躺在舒适的床上&#xff0c;好好放松一下。 走进浴室&#xff0c;他打开淋浴&#xff0c;温暖的水流倾洒在身上&#xff0c;疲惫感…

Oracle 利用触发器锁住代码防止他人改动

利用触发器锁住自己的代码防止他人改动 create or replace trigger LockSourcebeforecreateon SCHEMA declare beginif SYS_CONTEXT(USERENV,OS_USER) 自己的机器名thenreturn;end if;if ora_dict_obj_name in (xxxx1_PACKAGE,xxxx2_PACKAGE)thenraise_application_error(-2…

每日刷题(二分查找,匈牙利算法,逆序对)

目录 1.Sarumans Army 2.Catch That Cow 3.Drying 4.P3386 【模板】二分图最大匹配 5. Swap Dilemma 1.Sarumans Army 3069 -- Sarumans Army (poj.org) 这道题就是要求我们在给的的位置放入 palantir&#xff0c;每个 palantir有R大小的射程范围&#xff0c;要求求出最少…

生产订单执行明细表二开增加字段

文章目录 生产订单执行明细表二开增加字段业务背景业务需求方案设计详细设计和实现标准报表引入到应用标准报表和过滤扩展添加字段创建插件&#xff0c;挂载插件新建类库 Krystal.K3.SCGL.App.Report&#xff0c;添加引用创建类&#xff0c;继承报表原插件重写BuilderReportSql…

【微服务】Spring Cloud中如何使用Eureka

文章目录 强烈推荐引言主要功能Eureka 的架构使用示例Eureka Server 配置Eureka Client 配置示例服务服务发现调用示例 Spring Cloud如何实现服务的注册?1. 搭建 Eureka 服务注册中心2. 配置服务注册到 Eureka3. 验证服务注册 总结应用场景1. 动态服务发现2. 负载均衡3. 服务治…

Android C++系列:Linux进程间关系

1. 终端 在UNIX系统中,用户通过终端登录系统后得到一个Shell进程,这个终端成为Shell进 程的控制终端(Controlling Terminal),在前面文章我们说过,控制终端是保存在PCB中的信 息,而我们知道fork会复制PCB中的信息,因此由Shell进程启动的其它进程的控制终端也是 这个终端。…

OpenCV进行视频分析(光流、目标跟踪)----20240710

一、OpenCV进行光流分析 # 光流分析蚂蚁轨迹 import numpy as np import cv2if __name__ == __main__:cap = cv2.VideoCapture(./pictures/ant.mp4)# ShiTomasi 角点检测参数feature_params = dict(maxCorners=100

基于Java中的SSM框架实现水稻朔源信息系统项目【项目源码】

基于Java中的SSM框架实现水稻朔源信息系统演示 SSM框架 SSM框架是基于Spring、SpringMVC以及Mybatis实现的针对JAVA WEB端应用的开发框架&#xff0c;通过SSM框架结构可以实现以上三种框架的优点集合&#xff0c;从而实现更加高效便捷的系统开发和呈现。该框架结构通过Spring框…

PolarisMesh源码系列——服务如何注册

前话 PolarisMesh&#xff08;北极星&#xff09;是腾讯开源的服务治理平台&#xff0c;致力于解决分布式和微服务架构中的服务管理、流量管理、配置管理、故障容错和可观测性问题&#xff0c;针对不同的技术栈和环境提供服务治理的标准方案和最佳实践。 PolarisMesh 官网&am…

main.cpp程序执行流程图

当然&#xff0c;我会为你绘制一个程序执行流程图&#xff0c;并用中文注释来解释 main.cpp 的代码逻辑思想和执行流程。 程序执行流程图 开始|V 初始化|V 打开摄像头 (VideoCapture cap(0))|V 进入主循环 (while (true))|V 捕获图像 (cap >> srcImage)|V 图像是否为空…

280个地级市金融集聚水平数据(2006-2022年)

2006年-2022年280个地级市金融集聚水平数据整理资源-CSDN文库 金融集聚水平&#xff1a;衡量地级市金融发展的新维度 金融集聚水平是衡量一个地区金融发展程度的重要指标&#xff0c;它反映了金融机构、金融资源、金融服务在特定时间和空间的集中程度。这一指标的评估可以从多…

根据H在有限域GF(2^m)上求解生成矩阵G

原理 有时间再补充。 注1&#xff1a;使用高斯消去法。如果Py不为单位阵&#xff0c;则说明进行了列置换&#xff0c;此时G不是系统形式。 注2&#xff1a;校验矩阵H必须是行满秩才存在对应的生成矩阵G&#xff0c;且生成矩阵G通常不唯一。 matlab实现&#xff1a;只做列置…

视语坤川大模型智能体平台亮相2024世界人工智能大会

7月4日-7月7日&#xff0c;以“以共商促共享以善治促善智”为主题的2024世界人工智能大会&#xff08;WAIC 2024&#xff09;在上海举办&#xff0c;世界顶级专家学者、知名企业代表、政界人士、高校组织等齐聚上海&#xff0c;共商发展、共话未来。 作为大会的重磅环节——昇…

Python面试题:编写一个 Python 脚本来读取 Excel 文件

要在 Python 中读取 Excel 文件&#xff0c;可以使用 pandas 库&#xff0c;这个库提供了强大的数据处理和分析功能&#xff0c;并且支持读取 Excel 文件。你还需要 openpyxl 库来支持读取 .xlsx 格式的 Excel 文件。以下是如何编写一个脚本来读取 Excel 文件的示例&#xff1a…

git 的cherry-pick选择性提交

git cherry-pick 是 Git 中的一个非常有用的命令&#xff0c;它允许你将一个或多个特定的提交&#xff08;commit&#xff09;从一个分支应用到另一个分支上&#xff0c;而不是合并整个分支。 单个提交的 cherry-pick 假设你有一个 feature 分支&#xff0c;其中有一个提交&a…

【笔记】Android V 应用SDK升级适配和问题

说明 随着Google释放的Android版本,系统升级SDK到35,应用也需要升级上去,不然会报错。 Android Studio Jellyfish | 2023.3.1 | Android Developers Android Studio 预览版中的新功能 | Android Developers 当前版本的Android Studio

Elasticsearch:深度学习与机器学习:了解差异

作者&#xff1a;来自 Elastic Elastic Platform Team 近年来&#xff0c;两项突破性技术一直站在创新的最前沿 —— 机器学习 (machine learning - ML) 和深度学习 (deep learning - DL)。人工智能 (AI) 的这些子集远不止是流行语。它们是推动医疗保健、金融等各行业进步的关键…