Pyecharts功能详解与实战示例
一、Pyecharts简介
Pyecharts是一个基于Python的开源数据可视化库,它基于百度的Echarts库,提供了丰富的图表类型和强大的交互功能。通过Pyecharts,你可以轻松创建各种精美的图表,如折线图、柱状图、饼图、散点图、地图等,满足不同数据可视化需求。
二、基础图表类型
1. 折线图(Line Chart)
折线图用于展示数据随时间或其他连续变量的变化趋势。
from pyecharts.charts import Line
from pyecharts import options as opts# 创建折线图
line = Line()
line.add_xaxis(["A", "B", "C", "D", "E"])
line.add_yaxis("系列1", [25, 40, 30, 35, 20])# 设置全局配置
line.set_global_opts(title_opts=opts.TitleOpts(title="折线图示例"),tooltip_opts=opts.TooltipOpts(trigger="axis")
)# 渲染图表
line.render("line_chart.html")
运行效果:生成一个简单的折线图,展示五个类别的数据变化趋势。

2. 柱状图(Bar Chart)
柱状图用于比较不同类别数据的大小关系。
from pyecharts.charts import Bar
from pyecharts import options as opts# 创建柱状图
bar = Bar()
bar.add_xaxis(["A", "B", "C", "D", "E"])
bar.add_yaxis("系列1", [25, 40, 30, 35, 20])# 设置全局配置
bar.set_global_opts(title_opts=opts.TitleOpts(title="柱状图示例"),tooltip_opts=opts.TooltipOpts(trigger="axis")
)# 渲染图表
bar.render("bar_chart.html")
运行效果:生成一个柱状图,直观比较不同类别的数据大小。

3. 饼图(Pie Chart)
饼图用于展示各部分在整体中的占比关系。
from pyecharts.charts import Pie
from pyecharts import options as opts# 创建饼图
pie = Pie()
pie.add("", [list(z) for z in zip(["A", "B", "C", "D", "E"], [25, 40, 30, 35, 20])])# 设置全局配置
pie.set_global_opts(title_opts=opts.TitleOpts(title="饼图示例"))# 渲染图表
pie.render("pie_chart.html")
运行效果:生成一个饼图,展示各部分的占比情况。

4. 散点图(Scatter Chart)
散点图用于分析两个变量之间的相关性。
from pyecharts.charts import Scatter
from pyecharts import options as opts
import random# 创建散点图
scatter = Scatter()
scatter.add_xaxis([random.randint(0, 100) for _ in range(100)])
scatter.add_yaxis("", [random.randint(0, 100) for _ in range(100)])# 设置全局配置
scatter.set_global_opts(title_opts=opts.TitleOpts(title="散点图示例"),xaxis_opts=opts.AxisOpts(type_="value"),yaxis_opts=opts.AxisOpts(type_="value")
)# 渲染图表
scatter.render("scatter_chart.html")
运行效果:生成一个散点图,展示两个变量之间的分布情况。

三、高级功能与配置
1. 数据缩放(Data Zoom)
数据缩放功能允许用户在包含大量数据的图表中,通过拖动滑块或选择特定区域来放大查看感兴趣的局部数据。
from pyecharts.charts import Line
from pyecharts import options as opts
import numpy as np# 创建折线图
line = Line()
line.add_xaxis(list(range(1, 1001)))
line.add_yaxis("随机数据", np.random.rand(1000).tolist())# 设置数据缩放配置
line.set_global_opts(datazoom_opts=opts.DataZoomOpts(is_show=True,type_="slider",range_start=0,range_end=100)
)# 渲染图表
line.render("data_zoom_demo.html")
运行效果:生成一个包含数据缩放功能的折线图,用户可以通过滑块调整查看范围。

2. 交互事件(Interaction Events)
通过事件监听,可以为图表元素添加点击、双击、鼠标悬停等事件,实现自定义的交互逻辑。
from pyecharts.charts import Bar
from pyecharts import options as opts# 创建柱状图
bar = Bar()
bar.add_xaxis(["A", "B", "C", "D", "E"])
bar.add_yaxis("系列1", [25, 40, 30, 35, 20])# 添加点击事件的JavaScript代码
bar.set_global_opts(title_opts=opts.TitleOpts(title="柱状图示例"),tooltip_opts=opts.TooltipOpts(is_show=True),# 使用set_global_opts绑定事件# 这里是重点:通过opts.JsCode定义事件处理函数# 在ECharts中,事件处理函数需要通过option的`series`配置项绑定# pyecharts的set_series_opts可以实现这一点
)# 使用set_series_opts绑定点击事件
bar.set_series_opts(label_opts=opts.LabelOpts(is_show=True),# 在series中绑定点击事件itemstyle_opts={"normal": {"onEvents": {"click": "function(params) {""alert('点击了 ' + params.name + ' 的 ' + params.seriesName + ',值为 ' + params.value);""}"}}}
)# 渲染图表
bar.render("interaction_demo.html")
运行效果:生成一个柱状图,点击柱子时会弹出提示框显示详细信息。

3. 主题切换(Theme Switching)
Pyecharts 支持多种内置主题,并允许用户自定义主题,满足不同的视觉风格需求。
from pyecharts.charts import Line
from pyecharts import options as opts# 创建折线图并设置主题
line = Line(init_opts=opts.InitOpts(theme="dark"))
line.add_xaxis(["A", "B", "C", "D", "E"])
line.add_yaxis("系列1", [25, 40, 30, 35, 20])# 设置全局配置
line.set_global_opts(title_opts=opts.TitleOpts(title="暗黑主题示例")
)# 渲染图表
line.render("theme_demo.html")
运行效果:生成一个使用暗黑主题的折线图,整体风格更适合在低光环境下查看。

四、综合实战示例
1. 多数据系列对比分析
在同一个图表中展示多个数据系列,能够直观地进行数据间的对比分析。
from pyecharts.charts import Line
from pyecharts import options as opts# 创建折线图并添加多个数据系列
line = Line()
line.add_xaxis(["A", "B", "C", "D", "E"])
line.add_yaxis("系列1", [25, 40, 30, 35, 20])
line.add_yaxis("系列2", [30, 35, 40, 25, 45])# 设置全局配置
line.set_global_opts(title_opts=opts.TitleOpts(title="多数据系列对比"),xaxis_opts=opts.AxisOpts(name="类别"),yaxis_opts=opts.AxisOpts(name="数值")
)# 渲染图表
line.render("multiple_series_demo.html")
运行效果:生成一个包含两个数据系列的折线图,直观展示不同系列的数据变化趋势。

2. 复杂交互式仪表板
通过组合多种图表类型和交互功能,可以构建复杂的仪表板,满足多维度数据展示和分析需求。
from pyecharts.charts import Page, Bar, Line, Pie, Grid
from pyecharts import options as opts# 创建多个图表
bar = Bar()
bar.add_xaxis(["A", "B", "C", "D", "E"])
bar.add_yaxis("数值", [25, 40, 30, 35, 20])line = Line()
line.add_xaxis(["A", "B", "C", "D", "E"])
line.add_yaxis("趋势", [20, 35, 25, 30, 40])pie = Pie()
pie.add("", [list(z) for z in zip(["A", "B", "C", "D", "E"], [25, 40, 30, 35, 20])])# 创建页面布局
page = Page(layout=Page.SimplePageLayout)
page.add(bar, line, pie)# 渲染页面
page.render("dashboard_demo.html")
运行效果:生成一个包含柱状图、折线图和饼图的仪表板,展示不同类型的图表组合和数据对比。

五、总结
Pyecharts 是一个功能强大的数据可视化库,不仅提供了丰富的图表类型和配置选项,还支持灵活的交互功能和主题切换。通过实际的代码示例,我们深入探讨了每个功能的实现细节和应用场景,希望能帮助读者在实际开发中更加得心应手。在未来的数据可视化领域,Pyecharts 将继续发挥其独特的优势,为用户带来更加精彩和专业的可视化体验。
相关文章:
Pyecharts功能详解与实战示例
一、Pyecharts简介 Pyecharts是一个基于Python的开源数据可视化库,它基于百度的Echarts库,提供了丰富的图表类型和强大的交互功能。通过Pyecharts,你可以轻松创建各种精美的图表,如折线图、柱状图、饼图、散点图、地图等…...
传统金融和分布式金融
文章目录 传统金融和分布式金融一、传统金融机构的核心问题深度剖析1. 支付与清算系统的结构性缺陷2. 金融排斥(Financial Exclusion)的根源3. 中心化风险的爆发与传导 二、DeFi的技术突破与创新机制1. 支付与清算:区块链的底层重构2. 普惠金…...
EasyUI数据表格中嵌入下拉框
效果 代码 $(function () {// 标记当前正在编辑的行var editorIndex -1;var data [{code: 1,name: 1,price: 1,status: 0},{code: 2,name: 2,price: 2,status: 1}]$(#dg).datagrid({data: data,onDblClickCell:function (index, field, value) {var dg $(this);if(field ! …...
C语言:扫雷
在编程的世界里,扫雷游戏是一个经典的实践项目。它不仅能帮助我们巩固编程知识,还能锻炼逻辑思维和解决问题的能力。今天,就让我们一起用 C 语言来实现这个有趣的游戏,并且通过图文并茂的方式,让每一步都清晰易懂 1. 游…...
操作系统必知的面试题
🧑 博主简介:CSDN博客专家,历代文学网(PC端可以访问:https://literature.sinhy.com/#/literature?__c1000,移动端可微信小程序搜索“历代文学”)总架构师,15年工作经验,…...
清华大学.智灵动力-《DeepSeek行业应用实践报告》附PPT下载方法
导 读INTRODUCTION 今天分享是由清华大学.智灵动力:《DeepSeek行业应用实践报告》,主要介绍了DeepSeek模型的概述、优势、使用技巧、与其他模型的对比,以及在多个行业中的应用和未来发展趋势。为理解DeepSeek模型的应用和未来发展提供了深入的…...
数据库三级填空+应用题(1)
填空 35【答案】TOP 3 WITH TIES 【解析】希望选出商品数量最多的前3类商品,并获得相应的商品类别和数量。with ties一般是和Top 、 order by相结合使用,表示包括与最后一行order by后面的参数取值并列的结果。 36在SQL Server 2008中,每个数据页可存储8…...
可视化图解算法:链表的奇偶重排(排序链表)
1. 题目 描述 给定一个单链表,请设定一个函数,将链表的奇数位节点和偶数位节点分别放在一起,重排后输出。 注意是节点的编号而非节点的数值。 数据范围:节点数量满足 0≤n≤105,节点中的值都满足 0≤val≤10000 要…...
Atlas 800I A2 双机直连部署DeepSeek-R1-w8a8
一、环境信息 1.1、硬件信息 Atlas 800I A2 * 2 1.2、环境信息 操作系统:openEuler 22.03 LTS NPU驱动:Ascend-hdk-910b-npu-driver 24.1.0 linux-aarch64.run NPU固件:Ascend-hdk-910b-npu-firware 7.5.0.3.220.run MindIE镜像ÿ…...
如何确保异步任务在 HTTP 返回后继续执行?context.WithoutCancel
文章目录 如何确保异步任务在 HTTP 返回后继续执行?问题分析如何确保异步任务在 HTTP 返回后继续执行?(1)使用独立的 context(2)手动传递父 ctx 中的值(3)使用 context.WithoutCance…...
SAP Activate Methodology in a Nutshell Phases of SAP Activate Methodology
SAP Activate Methodology in a Nutshell Phases of SAP Activate Methodology...
开源AI大模型、AI智能名片与S2B2C商城小程序源码:实体店引流的破局之道
摘要:本文聚焦实体店引流困境,提出基于"开源AI大模型AI智能名片S2B2C商城小程序源码"的技术整合方案。通过深度解析各技术核心机制与协同逻辑,结合明源云地产营销、杭州美甲店裂变等实际案例,论证其对流量精准获取、客户…...
JVM 02
今天是2025/03/23 19:07 day 10 总路线请移步主页Java大纲相关文章 今天进行JVM 3,4 个模块的归纳 首先是JVM的相关内容概括的思维导图 3. 类加载机制 加载过程 加载(Loading) 通过类全限定名获取类的二进制字节流(如从JAR包、网络、动态…...
C++ :顺序容器
一、顺序容器概述 顺序容器通过元素在容器中的线性存储顺序来维护数据,允许通过位置(下标)访问元素。标准库提供6种核心顺序容器: 容器类型头文件底层结构特点vector<vector>动态数组快速随机访问,尾部高效增…...
身份证信息要素真伪认证-身份证二、三要素实名接口
在数字化时代,身份验证的准确性和安全性至关重要。身份证二、三要素实名接口作为一种高效且可靠的身份验证工具,正逐渐成为众多行业确保信息真实性、防范欺诈行为的关键手段。 身份证二、三要素实名接口主要验证身份证号码、姓名以及证件头像是否一致。通…...
pyecharts在jupyter notebook中不能够渲染图表问题。
在使用jupyter notebook中使用pyecharts绘制可视化图表的时候,发现图表不能渲染到页面中,生成的html是没问题的,本文主要解决在jupyter notebook中不能渲染这个问题。 1、原因分析 2、解决办法 如果是使用的虚拟环境,需要下你提前激活虚拟环境,再进行下列操作。 因为需要…...
【线程安全的单例模式和STL是否是线程安全/智能指针是否是线程安全】
文章目录 一、单例模式的特点二、饿汉模式实现单例三、懒汉模式实现单例四、STL线程安全吗?五、智能指针线程安全吗? 一、单例模式的特点 一个类,只应该实例化了一个对象,就是单例。 二、饿汉模式实现单例 举个饿汉模式的例子&…...
C++11 标准库 `find` 与 `find_if` 详解
一、std::find 函数 功能:在指定范围内查找特定值,返回第一个匹配元素的迭代器;若未找到,返回 end() 迭代器。 原型: template <class InputIt, class T> InputIt find(InputIt first, InputIt last, const T&…...
每日总结3.24
第十届蓝桥杯大赛软件赛省赛C/C 大学 B 组 183.完全二叉树的权值(找规律,临界值) #include <bits/stdc.h> using namespace std; int a[1000005]; int main() { int m;int d; cin>>m; int sum;int maxn0; for(int i1;i&…...
Redis分布式寻址算法
分布式寻址算法是分布式系统中用于确定数据应该存储在哪个节点的算法。这些算法对于实现高效的数据存取、负载均衡和系统扩展性至关重要。以下是几种常见的分布式寻址算法的解释: 1. Hash 算法 原理:通过哈希函数将数据的键(Key)…...
kotlin init执行顺序
一 代码 kotlin: package test.fclass Test1 { }class TestInit(s: String, i: Int) {var name: String? nullvar age 0private var a :Int 1init {this.name sthis.age iprintln("init代码块: $name, $age")}}转成java // Test1.java package test.f;import…...
详解Spark executor
在 Apache Spark 中,Executor(执行器) 是运行在集群工作节点(Worker Node)上的进程,负责执行具体的计算任务并管理数据。它是 Spark 分布式计算的核心组件之一,直接决定了任务的并行度和资源利用…...
单片机 - RAM 与内存、ROM 与硬盘 之间的详细对比总结
RAM 与 内存 RAM(Random Access Memory,随机存取存储器) 和 内存 这两个术语通常是 同义词,即 内存 常常指的就是 RAM。 1. RAM(内存) 定义:RAM 是计算机中的 主存储器,用于临时存…...
NVIDIA V100显卡支持Tensor Core技术,而Granite-3.1-8B模型在适当的条件下可以利用Tensor Core来加速数据处理
NVIDIA V100显卡支持Tensor Core技术,而Granite-3.1-8B模型在适当的条件下可以利用Tensor Core来加速数据处理。 要利用Tensor Core加速,需要满足以下一些条件: 软件支持:所使用的深度学习框架(如PyTorch、TensorFlo…...
《深度剖析:BERT与GPT——自然语言处理架构的璀璨双星》
在自然语言处理(NLP)的广袤星空中,BERT(Bidirectional Encoder Representations from Transformers)与GPT(Generative Pretrained Transformer)系列模型宛如两颗最为耀眼的星辰,引领…...
《AI大模型趣味实战 》第7集:多端适配 个人新闻头条 基于大模型和RSS聚合打造个人新闻电台(Flask WEB版) 1
AI大模型趣味实战 第7集:多端适配 个人新闻头条 基于大模型和RSS聚合打造个人新闻电台(Flask WEB版) 1 摘要 在信息爆炸的时代,如何高效获取和筛选感兴趣的新闻内容成为一个现实问题。本文将带领读者通过Python和Flask框架,结合大模型的强大…...
JS 算术运算符
JavaScript 算术运算符 一、基础运算符及行为特性 1. 四则运算 加法 + 数值相加:5 + 3 → 8字符串拼接(隐式类型转换):"5" + 3 → "53"混合类型优先级:1 + true → 2(true转1)减法 -、乘法 *、除法 / 纯数值运算:5 - "2" → 3(字符串转…...
基于Spring Boot的健身房管理系统的设计与实现(LW+源码+讲解)
专注于大学生项目实战开发,讲解,毕业答疑辅导,欢迎高校老师/同行前辈交流合作✌。 技术范围:SpringBoot、Vue、SSM、HLMT、小程序、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、安卓app、大数据、物联网、机器学习等设计与开发。 主要内容:…...
WSL Linux 子系统download
WSL各Linux 子系统下载 WSL Linux 最新下载 微软应用商店 | Microsoft StoreWSL Linux 历史版下载复制应用商店Linux地址到转换下载地址https://store.rg-adguard.net/ Version百度网盘离线下载OracleLinux提取...
Qt中通过QLabel实时显示图像
Qt中的QLabel控件用于显示文本或图像,不提供用户交互功能。以下测试代码用于从内置摄像头获取图像并实时显示: Widgets_Test.h: class Widgets_Test : public QMainWindow {Q_OBJECTpublic:Widgets_Test(QWidget *parent nullptr);~Widgets…...
