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")

生成颜色渐变的中国疫情分布图,直观显示区域差异。


五、进阶技巧

  1. 组合图表:使用 Grid 类实现多图表联动

    from pyecharts.charts import Gridgrid = Grid()
    grid.add(bar, grid_opts={"left": "55%"}).add(line)
    
  2. 时间轴:创建动态演变图表

    from pyecharts.charts import Timelinetimeline = Timeline()
    timeline.add_schema(play_interval=1000)  # 自动播放间隔
    
  3. 自定义主题

    from pyecharts import options as opts
    from pyecharts.globals import ThemeTypebar = Bar(init_opts=opts.InitOpts(theme=ThemeType.LIGHT))
    

六、注意事项

  1. 版本兼容性:PyEcharts v1.x 与 v0.x 的 API 差异较大,建议使用最新版
  2. 大数据优化:当数据量 > 10万时,建议启用 WebGL 渲染
  3. 部署建议:通过 Flask/Django 集成时,使用 render_embed() 生成代码片段

通过以上方法和案例,开发者可以快速实现专业级的数据可视化效果。官方文档(https://pyecharts.org)提供了完整的 API 参考和示例库,推荐深入学习。


通过实践这些案例,您将能够轻松应对常见的数据可视化需求。PyEcharts 的灵活性和表现力使其成为Python可视化生态中的重要工具,特别适合需要交互性的网页应用场景。

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

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

相关文章

五、Three.js顶点UV坐标、纹理贴图

一部分来自1. 创建纹理贴图 | Three.js中文网 ,一部分是自己的总结。 一、创建纹理贴图 注意:把一张图片贴在模型上就是纹理贴图 1、纹理加载器TextureLoader 注意:将图片加载到加载器中 通过纹理贴图加载器TextureLoader的load()方法加…

使用postman测试api接口基本步骤

测试一个已写好的 API 接口需要系统性地验证其功能、性能、安全性及异常处理能力。以下是使用 Postman 进行 API 接口测试的详细步骤和注意事项: 1. 确认接口文档 明确输入输出:了解接口的请求方法(GET/POST/PUT/DELETE)、URL、请…

綫性與非綫性泛函分析與應用_1.例題(下)-半母本

第1章 實分析與函數論:快速回顧(下) 五、基數;有限集和無限集相關例題 例題1:集合基數的判斷 判斷集合和集合B=\{a,b,c,d,e\}的基數關係。 解析: 可以構造一個雙射,例如,,,,。 所以,兩個集合具有相同的基數。 例題2:可數集的證明 證明整數集是可數集。 解析: …

Windows系统第一次运行C语言程序,环境配置,软件安装等遇到的坑及解决方法

明确需要编辑器和编译器,并选择自己要用什么(我选的编辑器是VSCode:Visual Studio Code;编译器是gcc)下载VSCode并配置环境变量(这里没啥问题),安装C/C的拓展安装Cygwin,…

浅拷贝和深拷贝的区别?可以举例说明

在编程中,浅拷贝和深拷贝是用于复制对象的两种不同方式,它们的主要区别在于复制对象时对对象内部成员的处理方式。今天我们对此进行讨论。 目录 1 浅拷贝 2 深拷贝 1 浅拷贝 浅拷贝创建一个新对象,新对象的属性值会复制原始对象的属性值…

微信小程序实现拉卡拉支付

功能需求:拉卡拉支付(通过跳转拉卡拉平台进行支付),他人支付(通过链接进行平台跳转支付) 1.支付操作 //支付 const onCanStartPay async (obj) > {uni.showLoading({mask: true})// 支付接口获取需要传…

使用ESP-IDF来驱动INMP441全向麦克风

之前的文章我们讲过了I2S。 I2S是什么通信协议?它如何传输音频数据?它和I2C是什么关系?_i2c接口和i2s-CSDN博客文章浏览阅读836次,点赞12次,收藏14次。这个可以参考ADC来理解,我们的ADC也是有左对齐和右对…

MobaXterm_Portable_v23.2 免费下载与使用教程(附安卓替代方案)

一、MobaXterm_Portable 简介 MobaXterm 是一款功能强大的全能终端工具,支持 SSH、SFTP、RDP、VNC、X11 转发 等多种协议,集成了终端、文件传输、远程桌面等功能。其便携版(Portable Edition)无需安装,解压即可使用&a…

【带你 langchain 双排系列教程】6.LangChain多模态输入与自定义输出实战指南

一、为什么需要多模态交互? 在真实业务场景中,数据从来都不是单一形式的。想象一个智能客服系统需要同时分析用户的文字描述、上传的产品图片和语音留言,或者一个内容审核系统需要检查文本、图像和视频的组合内容。传统单一模态的处理方式已…

【Bluedroid】AVRCP 连接源码分析(三)

接着上一篇【Bluedroid】AVRCP 连接源码分析(一)-CSDN博客,继续AVRCP连接的源码分析。 AVRC_OpenBrowse /packages/modules/Bluetooth/system/stack/avrc/avrc_api.cc /*****************************************************************…

基于大语言模型的推荐系统(1)

推荐系统(recommendation system)非常重要。事实上,搜索引擎,电子商务,视频,音乐平台,社交网络等等,几乎所有互联网应用的核心就是向用户推荐内容,商品,电影&…

高性能GPU计算:释放计算潜力的加速利器

高性能GPU计算:释放计算潜力的加速利器 大家好,我是Echo_Wish,今天我们来聊一聊 高性能GPU计算。近年来,随着人工智能、深度学习、科学计算等领域的快速发展,GPU(图形处理单元)作为计算加速的核心技术,逐渐成为数据处理的“核心大脑”。尤其是在深度学习模型训练和大规…

QT闲记-状态栏,模态对话框,非模态对话框

1、创建状态栏 跟菜单栏一样,如果是继承于QMainWindow类,那么可以获取窗口的状态栏,否则就要创建一个状态栏。通过statusBar()获取窗口的状态栏。 2、添加组件 通常添加Label 来显示相关信息,当然也可以添加其他的组件。通过addWidget()添加组件 3、设置状态栏样式 …

SHELL32!SHLoadPopupMenu函数分析之添加属性菜单项

SHELL32!SHLoadPopupMenu函数分析之添加属性菜单项 第一部分: // // user does not support pop-up only menu. // STDAPI_(HMENU) SHLoadPopupMenu(HINSTANCE hinst, UINT id) { HMENU hmenuParent LoadMenu(hinst, MAKEINTRESOURCE(id)); if (hmenuPare…

将RocketMQ集成到了Spring Boot项目中,实现站内信功能

1. 添加依赖 首先,在pom.xml中添加RocketMQ的依赖: <dependencies><!-- Spring Boot Starter Web --><dependency><groupId>org.springframework.boot

C语言基础要素:安装 Visual Studio 2022

安装 Visual Studio 2022 Visual Studio 是由微软开发的一款集成开发环境&#xff08;IDE&#xff09;&#xff0c;支持多种编程语言和开发平台。它提供了丰富的工具和功能&#xff0c;帮助开发者高效地编写、调试和部署应用程序。无论是桌面应用、Web 应用还是移动应用&#…

[ TypeScript ] “undefined extends xxx“ 总是为 true 的 bug

版本号 "typescript": "^5.7.3", "unplugin": "^2.2.0",说明 在使用 unplugin 时 , 我定义插件的参数是 必填的, 使用时却是一个可空参数, 不传参也不会报错, (options?: UserOptions) > Return &#x1f632;&#x1f632;&…

[通俗易懂C++]:指针和const

之前的文章有说过,使用指针我们可以改变指针指向的内容(通过给指针赋一个新的地址)或者改变被保存地址的值(通过给解引用指针赋一个新值): int main() {int x { 5 }; // 创建一个整数变量 x&#xff0c;初始值为 5int* ptr { &x }; // 创建一个指针 ptr&#xff0c;指向 …

华为昇腾服务器(固件版本查询、驱动版本查询、CANN版本查询)

文章目录 1. **查看固件和驱动版本**2. **查看CANN版本**3. **其他辅助方法**注意事项 在华为昇腾服务器上查看固件、驱动和CANN版本的常用方法如下&#xff1a; 1. 查看固件和驱动版本 通过命令行工具 npu-smi 执行以下命令查看当前设备的固件&#xff08;Firmware&#xff0…

设计心得——解耦的实现技术

一、说明 在前面的“设计心得——解耦”中&#xff0c;对解耦进行了高层次的抽象说明。本篇则对在实践中常用的解耦技术进行逐一分析说明&#xff0c;以期为开发者能更从理论到实践搭建一个桥梁。至于大家能够如何更好的在自己的项目中进行解耦的实践&#xff0c;就需要不断的…