当前位置: 首页 > ds >正文

Python 之 pyecharts 使用

要说绘制动态图表,echarts 肯定是有一席之地的,特别是像 flask 这种轻量级的 web 框架,在 html 中动态嵌入生成 echarts 无疑是很优的选择。pyecharts 简单来说就是以 python 的方式来生成对应的 echarts 图表。

安装

pip install pyecharts

示例

图表的种类很多,而且官网的示例和渲染效果十分详细,我就不每个图表都写一遍示例了。我写这个也只是当作一个网页备忘录,方便后续使用的时候进行查找。

详细示例及代码可参考官网(pyecharts 长廊):pyecharts-gallery

使用 

对于我们大部分普通人来说,记忆力并不是那么超群,要记住那么多图表的参数设置着实有点困难,好在我们还有在线 Demo 手册 pyecharts-gallery

从示例找对应效果代码

比如,常规的最简单的柱状图是下面这种的。

from pyecharts.charts import Barif __name__ == '__main__':bar = Bar()bar.add_xaxis(["衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋", "袜子"])bar.add_yaxis("商家A", [5, 20, 36, 10, 75, 90])bar.add_yaxis("商家B", [6, 30, 26, 15, 55, 80])bar.render("myecharts.html")

但你可能想要的是堆叠的图表,而不是这种并列的图表,但是堆叠的图表要怎么设置参数却忘了。这个时候,你可以打开在线 Demo 示例,在柱状图的侧边栏一个个点击查看效果,然后找到你想要的效果图。

从效果图代码修改参数

这不,效果图找到了,对应效果图的代码也找到了,然后看下要怎么修改才能变成堆叠的柱状图呢?

原来是在 add_yaxis 的时候添加了 stack 参数,而且很明显,两个 add_yaxis 设置的 stack 都是一样的,既然如此,我们也这么设置下。

from pyecharts.charts import Barif __name__ == '__main__':bar = Bar()bar.add_xaxis(["衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋", "袜子"])bar.add_yaxis("商家A", [5, 20, 36, 10, 75, 90], stack="stack1")bar.add_yaxis("商家B", [6, 30, 26, 15, 55, 80], stack="stack1")bar.render("myecharts.html")

看下运行效果,果然如此,甚至还可以在 DeepSeek 搜索下 stack 参数的具体用法。

造数

我们图表画图自测的时候,就不得不造一些数据了,手动造数的话又太麻烦,pyecharts 团体估计也有此考虑,所以 pyecharts 内置了一个轻量级的 Faker 模块,大家可以看下源码。

from pyecharts.faker import Fakerif __name__ == '__main__':print(Faker.values())print(Faker.choose())print(Faker.provinces)print(Faker.country)print(Faker.animal)print(Faker.guangdong_city)print(Faker.days_values)print(Faker.clock)
[101, 115, 21, 120, 24, 137, 26]
['周一', '周二', '周三', '周四', '周五', '周六', '周日']
['广东省', '北京市', '上海市', '江西省', '湖南省', '浙江省', '江苏省']
['China', 'Canada', 'Brazil', 'Russia', 'United States', 'Africa', 'Germany']
['河马', '蟒蛇', '老虎', '大象', '兔子', '熊猫', '狮子']
['汕头市', '汕尾市', '揭阳市', '阳江市', '肇庆市', '广州市', '惠州市']
[26, 29, 25, 12, 29, 7, 9, 5, 22, 8, 12, 28, 20, 28, 14, 14, 5, 9, 6, 18, 22, 18, 10, 28, 5, 22, 11, 4, 1, 7]
['12a', '1a', '2a', '3a', '4a', '5a', '6a', '7a', '8a', '9a', '10a', '11a', '12p', '1p', '2p', '3p', '4p', '5p', '6p', '7p', '8p', '9p', '10p', '11p']

图片

默认是渲染生成的 html,如果要生成图片文件,还需要额外安装依赖。

pip install snapshot-selenium
from pyecharts.charts import Bar
from pyecharts.render import make_snapshot
from snapshot_selenium import snapshotif __name__ == '__main__':bar = Bar()bar.add_xaxis(["衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋", "袜子"])bar.add_yaxis("商家A", [5, 20, 36, 10, 75, 90])bar.add_yaxis("商家B", [6, 30, 26, 15, 55, 80])# bar.render("myecharts.html")make_snapshot(snapshot, bar.render(), "myecharts.png")

这样就可以生成对应图表的图片了。

http://www.xdnf.cn/news/1266.html

相关文章:

  • 数字化赋能医药未来:柏强制药的战略布局与成果汇报
  • Linux系统编程 day9 SIGCHLD and 线程
  • L1-7、Prompt 的“调试技巧”
  • FPGA设计 时空变换
  • 【springsecurity oauth2授权中心】jwt令牌更换成自省令牌 OpaqueToken P4
  • 西门子PLC S7-1200按钮控制灯实例
  • day4-小白学习JAVA---开发软件_Scanner键盘录入_Random随机数_流程控制语句
  • 基于龙芯 2K1000处理器和复旦微 FPGA K7 的全国产RapidIO 解决方案研究
  • 【Pytorch 中的扩散模型】去噪扩散概率模型(DDPM)的实现
  • ProxySQL性能调优案例
  • 星光璀璨,跨界共鸣——李炳辰亮相 第十五届北影节嘉年华“音乐之旅”
  • [Java · 铢积寸累] 可变参数
  • Win10 关闭自动更新、关闭自动更新并重启
  • 实践项目开发-hbmV4V20250407-跨平台开发框架深度解析与VSCode一站式开发实践
  • 重装系统后的自用包
  • MulanPSL-1.0开源协议
  • PaddlePaddle线性回归详解:从模型定义到加载,掌握深度学习基础
  • 状态空间模型(State‐Space Model)、传递函数和极点
  • React项目添加react-quill富文本编辑器,遇到的问题,比如hr标签丢失
  • 文件操作和IO(上)
  • Towards Multi-Domain Learning for Generalizable Video Anomaly Detection
  • 一页概览:EMC Avamar备份方案
  • C++初阶——string的使用(上)
  • Tomcat启动闪退是为什么?
  • 第6次课 贪心算法 A
  • Electron使用WebAssembly实现CRC-32 原理校验
  • 前端路由 ( 1 ) | history 原理
  • Hyper-V 管理工具
  • Java队列(Queue)核心操作与最佳实践:深入解析与面试指南
  • AI+直播电商:短视频商城APP开发如何实现智能化推荐?