PyEcharts 数据可视化:从入门到实战
一、PyEcharts 简介
PyEcharts 是基于百度开源可视化库 ECharts 的 Python 数据可视化工具,支持生成交互式的 HTML 格式图表。相较于 Matplotlib 等静态图表库,PyEcharts 具有以下优势:
- 丰富的图表类型(30+)
- 动态交互功能(数据筛选、缩放等)
- 简洁的 API 设计
- 良好的网页兼容性
二、环境配置
安装命令:
pip install pyecharts
推荐配合 Jupyter Notebook 使用(需安装 jupyter-echarts 插件)或直接生成 HTML 文件。
三、核心概念解析
1. Chart 类体系
PyEcharts 提供 Bar, Line, Pie, Scatter 等类对应不同图表类型,均继承自基类 Chart。
2. 配置项(Option)
通过 set_global_opts() 和 set_series_opts() 配置图表:
from pyecharts.charts import Barbar = Bar()
bar.set_global_opts(title_opts={"text": "销售数据"},toolbox_opts={"show": True} # 显示工具箱
)
3. 数据格式
支持多种数据格式:
# 方式1:分别添加 X/Y 轴
bar.add_xaxis(["手机", "电脑", "平板"])
bar.add_yaxis("销售额", [1200, 800, 450])# 方式2:二维数据
bar.add("", [["手机",1200], ["电脑",800], ["平板",450]])
四、实战案例
案例1:动态折线图 - 股票价格趋势
from pyecharts.charts import Line
import numpy as npdates = pd.date_range("2023-01-01", periods=30).strftime("%m-%d").tolist()
prices = np.random.randn(30).cumsum() + 100 # 模拟股价line = (Line().add_xaxis(dates).add_yaxis("股价", prices, is_smooth=True).set_global_opts(title_opts={"text": "股票价格趋势"},datazoom_opts=[{"type": "inside"}], # 内置缩放tooltip_opts={"trigger": "axis"})
)
line.render("stock.html")
生成可缩放、提示数据点的动态折线图。
案例2:多层饼图 - 人口结构分析
from pyecharts.charts import Piedata = [("0-14岁", 17.3),("15-64岁", 68.3),("65岁以上", 14.4)
]pie = (Pie().add(series_name="年龄分布",data_pair=data,radius=["30%", "55%"], # 环形饼图label_opts={"formatter": "{b}: {d}%"}).set_global_opts(title_opts={"text": "中国人口年龄结构(2023)"},legend_opts={"orient": "vertical", "left": "right"})
)
pie.render("population.html")
创建带百分比标签的环形饼图,适合展示比例数据。
案例3:热力地图 - 疫情数据可视化
from pyecharts.charts import Mapprovince_data = [("广东", 1250),("浙江", 890), ("江苏", 760),("湖北", 430)
]map_chart = (Map().add("确诊病例", province_data,maptype="china",is_map_symbol_show=False).set_global_opts(visualmap_opts={"min": 0,"max": 1500,"range_text": ["高", "低"],"is_calculable": True,"color": ["#FFE4B5", "#FF4500"]})
)
map_chart.render("covid_map.html")
生成颜色渐变的中国疫情分布图,直观显示区域差异。
五、进阶技巧
-
组合图表:使用
Grid类实现多图表联动from pyecharts.charts import Gridgrid = Grid() grid.add(bar, grid_opts={"left": "55%"}).add(line) -
时间轴:创建动态演变图表
from pyecharts.charts import Timelinetimeline = Timeline() timeline.add_schema(play_interval=1000) # 自动播放间隔 -
自定义主题:
from pyecharts import options as opts from pyecharts.globals import ThemeTypebar = Bar(init_opts=opts.InitOpts(theme=ThemeType.LIGHT))
六、注意事项
- 版本兼容性:PyEcharts v1.x 与 v0.x 的 API 差异较大,建议使用最新版
- 大数据优化:当数据量 > 10万时,建议启用
WebGL渲染 - 部署建议:通过 Flask/Django 集成时,使用
render_embed()生成代码片段
通过以上方法和案例,开发者可以快速实现专业级的数据可视化效果。官方文档(https://pyecharts.org)提供了完整的 API 参考和示例库,推荐深入学习。
通过实践这些案例,您将能够轻松应对常见的数据可视化需求。PyEcharts 的灵活性和表现力使其成为Python可视化生态中的重要工具,特别适合需要交互性的网页应用场景。
相关文章:
PyEcharts 数据可视化:从入门到实战
一、PyEcharts 简介 PyEcharts 是基于百度开源可视化库 ECharts 的 Python 数据可视化工具,支持生成交互式的 HTML 格式图表。相较于 Matplotlib 等静态图表库,PyEcharts 具有以下优势: 丰富的图表类型(30)动态交互功…...
RT-Thread+STM32L475VET6——ADC采集电压
文章目录 前言一、板载资源二、具体步骤1.打开CubeMX进行配置1.1 使用外部高速时钟,并修改时钟树1.2 打开ADC1的通道3,并配置为连续采集模式(ADC根据自己需求调整)1.3 打开串口1.4 生成工程 2. 配置ADC2.1 打开ADC驱动2.2 声明ADC2.3 剪切stm…...
easyexcel 2.2.6版本导出excel模板时,标题带下拉框及其下拉值过多不显示问题
需求背景:有一个需求要做下拉框的值有100多条,同时这个excel是一个多sheet的导入模板 直接用easyexcel 导出,会出现下拉框的值过多,导致生成出来的excel模板无法正常展示下拉功能 使用的easyexcel版本:<depende…...
树(数据结构·)
树(数据结构篇) 里面没有结点时,称之为空树 树型结构是一对多的形式 深度优先遍历: 所谓的DFS,也就是说每次都尝试向更深的节点走,也就是一条路走到黑 当一条路走完,走到…...
XUnity.AutoTranslator-deepseek——调用腾讯的DeepSeek V3 API,实现Unity游戏中日文文本的自动翻译
XUnity.AutoTranslator-deepseek 本项目通过调用腾讯的DeepSeek V3 API,实现Unity游戏中日文文本的自动翻译。 准备工作 1. 获取API密钥 访问腾讯云API控制台申请DeepSeek的API密钥(限时免费)。也可以使用其他平台提供的DeepSeek API。 …...
谈谈 ES 6.8 到 7.10 的功能变迁(1)- 性能优化篇
前言 ES 7.10 可能是现在比较常见的 ES 版本。但是对于一些相迭代比较慢的早期业务系统来说,ES 6.8 是一个名副其实的“钉子户”。 借着工作内升级调研的任务东风,我整理从 ES 6.8 到 ES 7.10 ELastic 重点列出的新增功能和优化内容。将分为 6 个篇幅给…...
[250222] Kimi Latest 模型发布:尝鲜最新特性与追求稳定性的平衡 | SQLPage v0.33 发布
目录 Kimi Latest 模型发布:尝鲜最新特性与追求稳定性的平衡SQLPage v0.33 发布:使用 SQL 构建自定义 UI 和 API! Kimi Latest 模型发布:尝鲜最新特性与追求稳定性的平衡 Kimi 开放平台推出全新模型 kimi-latest,旨在…...
深入理解设计模式之解释器模式
深入理解设计模式之解释器模式 在软件开发的复杂世界中,我们常常会遇到需要处理特定领域语言的情况。比如在开发一个计算器程序时,需要解析和计算数学表达式;在实现正则表达式功能时,要解析用户输入的正则表达式来匹配文本。这些场景都涉及到对特定语言的解释和执行,而解…...
深入理解设计模式之代理模式
深入理解设计模式之代理模式 在软件开发的复杂体系中,我们常常会遇到这样的情况:需要控制对某个对象的访问,或者在访问对象前后添加一些额外的处理逻辑,又或者希望在不改变原对象代码的基础上扩展其功能。代理模式(Pr…...
Golang | 每日一练 (3)
💢欢迎来到张胤尘的技术站 💥技术如江河,汇聚众志成。代码似星辰,照亮行征程。开源精神长,传承永不忘。携手共前行,未来更辉煌💥 文章目录 Golang | 每日一练 (3)题目参考答案map 实现原理hmapb…...
企业数据集成:实现高效调拨出库自动化
调拨出库对接调出单-v:旺店通企业奇门数据集成到用友BIP 在企业信息化管理中,数据的高效流转和准确对接是实现业务流程自动化的关键。本文将分享一个实际案例,展示如何通过轻易云数据集成平台,将旺店通企业奇门的数据无缝集成到用…...
提效10倍:基于Paimon+Dolphin湖仓一体新架构在阿里妈妈品牌业务探索实践
1. 业务背景 阿里妈妈品牌广告数据包括投放引擎、下发、曝光、点击等日志,面向运筹调控、算法特征、分析报表、诊断监控等应用场景,进行了品牌数仓能力建设。随着业务发展,基于Lambda架构的数仓开发模式,缺陷日益突出:…...
Deepseek快速做PPT
背景: DeepSeek大纲生成 → Kimi结构化排版 → 数据审查,细节调整 DeepSeek 拥有深度思考能力,擅长逻辑构建与内容生成,它会根据我们的问题进行思考,其深度思考能力当前测试下来,不愧为国内No.1,而且还会把中间的思考过程展示出来,大多时候会给出很多我们意想不到的思…...
论文解读 | AAAI'25 Cobra:多模态扩展的大型语言模型,以实现高效推理
点击蓝字 关注我们 AI TIME欢迎每一位AI爱好者的加入! 点击 阅读原文 观看作者讲解回放! 个人信息 作者:赵晗,浙江大学-西湖大学联合培养博士生 内容简介 近年来,在各个领域应用多模态大语言模型(MLLMs&…...
uniapp修改picker-view样式
解决问题: 1.选中文案样式,比如字体颜色 2.修改分割线颜色 3.多列时,修改两边间距让其平分 展示效果: 代码如下 <template><u-popup :show"showPicker" :safeAreaInsetBottom"false" close&quo…...
HDFS Java 客户端 API
一、基本调用 Configuration 配置对象类,用于加载或设置参数属性 FileSystem 文件系统对象基类。针对不同文件系统有不同具体实现。该类封装了文件系统的相关操作方法。 1. maven依赖pom.xml文件 <dependency><groupId>org.apache.hadoop</groupId&g…...
【华三】STP的角色选举(一文讲透)
【华三】STP的角色选举 一、引言二、STP基础概念扫盲三、根桥选举过程详解四、根端口选举过程详解五、指定端口选举过程详解六、阻塞端口七、总结与配置建议七、附录**1. BPDU字段结构图(文字描述)****2. 华三STP常用命令速查表** 文章总结 一、引言 在…...
【C#零基础从入门到精通】(二十六)——C#三大特征-多态详解
【C#零基础从入门到精通】(二十六)——C#三大特征-多态详解 在 C# 中,多态是面向对象编程的重要特性之一,它允许不同的对象对同一消息做出不同的响应。多态可以分为静态多态和动态多态,下面将详细介绍它们以及各自包含的知识点。 多态概述 多态性使得代码更加灵活、可扩展…...
宇树科技13家核心零部件供应商梳理!
2025年2月6日,摩根士丹利(Morgan Stanley)发布最新人形机器人研报:Humanoid 100: Mapping the Humanoid Robot Value Chain(人形机器人100:全球人形机器人产业链梳理)。 Humanoid 100清单清单中…...
Java集合框架全解析:从LinkedHashMap到TreeMap与HashSet面试题实战
一、LinkedHashMap ①LinkedHashMap集合和HashMap集合的用法完全相同。 ②不过LinkedHashMap可以保证插入顺序。 ③LinkedHashMap集合因为可以保证插入顺序,因此效率比HashMap低一些。 ④LinkedHashMap是如何保证插入顺序的? 底层采用了双向链表来记…...
别再被dom4j的‘前言中不允许有内容’搞懵了!手把手教你用XmlMapper搞定Java对象转XML
告别dom4j解析噩梦:用Jackson XmlMapper优雅处理Java对象转XML 深夜调试代码时,突然蹦出org.dom4j.DocumentException: 前言中不允许有内容的报错——这场景Java开发者都不陌生。当我们需要将Java对象转为XML格式时,传统dom4j库对XML格式的严…...
保姆级教程:手把手教你用OpenCV复现ORB-SLAM2的ORB特征提取(附Python代码)
从零实现ORB特征提取:深入解析FAST关键点与BRIEF描述子的工程实践 在视觉SLAM领域,特征提取是构建整个系统的基石。ORB(Oriented FAST and Rotated BRIEF)作为兼顾效率与性能的特征描述方法,已成为实时SLAM系统的首选方…...
考研数学二:3个月零基础速成295分,我的极限、积分与微分方程实战笔记(附避坑指南)
考研数学二:3个月零基础速成295分,我的极限、积分与微分方程实战笔记(附避坑指南) 当推免失败的通知突然降临,距离考研仅剩三个月时,我面对着几乎空白的数学二基础。作为计算机专业考生,数学二是…...
避坑指南:解决Smart PLC与WinCC OPC通讯中‘XDB导入失败’和‘DB块变量无法添加’的常见问题
Smart PLC与WinCC OPC通讯故障排查实战手册 最近在调试Smart PLC与WinCC的OPC通讯时,发现不少工程师卡在XDB文件导入和DB块变量添加这两个环节。明明按照教程一步步操作,却在Station Configurator中频繁报错,或者在OPC Scout里死活找不到V区变…...
从数据手册到版图:手把手教你用ADS2022设计433MHz LNA(基于ATF54143)
从数据手册到版图:手把手教你用ADS2022设计433MHz LNA(基于ATF54143) 射频前端设计中,低噪声放大器(LNA)的性能直接影响整个系统的接收灵敏度。本文将基于ADS2022软件和ATF54143晶体管,完整演示…...
【技术演进】从交叉熵到广义焦点损失:目标检测损失函数的统一与进化之路
1. 目标检测中的损失函数演进背景 目标检测作为计算机视觉的核心任务之一,其性能提升很大程度上依赖于损失函数的优化。早期的目标检测器主要使用交叉熵损失进行分类任务,但随着应用场景复杂化,这种基础损失函数逐渐暴露出三个关键问题&#…...
【电池】可重构电池系统中的结构分析用于主动故障诊断研究附Matlab代码
✅作者简介:热爱科研的Matlab仿真开发者,擅长数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。🍎 往期回顾关注个人主页:Matlab科研工作室🍊个人信条:格物致知,完整Matlab代码及仿真咨询…...
2026年4月21日60秒读懂世界:阅读与手机时间、汽车价格战、脑机接口临床提速,今天最值得关注的6个信号
🔥个人主页:杨利杰YJlio❄️个人专栏:《Sysinternals实战教程》《Windows PowerShell 实战》《WINDOWS教程》《IOS教程》《微信助手》《锤子助手》 《Python》 《Kali Linux》 《那些年未解决的Windows疑难杂症》🌟 让复杂的事情更…...
企业信用查询怎么查?避坑指南+实操步骤
企业信用查询怎么查?最直接的方式是通过官方渠道或第三方平台,但很多人不知道,错误的查询方法可能会遗漏关键风险。根据2026年行业数据,68%的用户因信息分散导致风险识别不全。那么,如何高效、全面地查询企业信用呢&am…...
推荐一些可以用于论文降重的软件:哪些可以同时降低查重与AIGC率?2026年爆款TOP5深度评测!
CSDN学术极客专栏 / 2026届毕业生抢救指南: 各位C站的科研同行、学弟学妹们,晚上好。临近毕业季,我的主页几乎被同一个问题刷爆:“博主,推荐一些可以用于论文降重的软件吧!我用常规工具降完了重,…...
