Python学习之-pyechart详解

前言:

什么是pyechart?
Pyecharts 是一个用于生成 Echarts 图表的 Python 库。Echarts 是一个由百度开源的数据可视化工具,它提供的图表种类丰富,交互性强,兼容性好,非常适合用于数据分析结果的展示。Pyecharts 作为 Echarts 的 Python 接口,它允许用户通过书写 Python 代码来创建各种炫酷的图表。

使用步骤:
使用 Pyecharts 创建图表的基本步骤通常包括:
导入相应的图表类
创建一个图表对象
添加数据和配置项
渲染图表到文件

1 示例

下面是一些 Pyecharts 中常用的图表类型和相应的方法:

1.1 柱状图(Bar)

#!/usr/bin/env python
# coding=utf-8
"""
# @Time    : 2024/4/9 22:02
# @Author  : Summer
# @File    : pyechart.py
# @describe:
"""from pyecharts.charts import Barbar = (Bar().add_xaxis(["苹果", "梨", "橙子", "香蕉"]).add_yaxis("商家A", [5, 20, 36, 10]).add_yaxis("商家B", [15, 6, 45, 20]).set_global_opts(title_opts={"text": "主标题", "subtext": "副标题"})
)
bar.render("bar_chart.html")

在这里插入图片描述

2.2 折线图(Line)

#!/usr/bin/env python
# coding=utf-8
"""
# @Time    : 2024/4/9 22:02
# @Author  : Summer
# @File    : pyechart.py
# @describe:
"""from pyecharts.charts import Lineline = (Line().add_xaxis(["苹果", "梨", "橙子", "香蕉"]).add_yaxis("商家A", [5, 20, 36, 10]).add_yaxis("商家B", [15, 6, 45, 20]).set_global_opts(title_opts={"text": "主标题", "subtext": "副标题"})
)
line.render("line_chart.html")

在这里插入图片描述

2.3. 饼图(Pie)

#!/usr/bin/env python
# coding=utf-8
"""
# @Time    : 2024/4/9 22:02
# @Author  : Summer
# @File    : pyechart.py
# @describe:
"""from pyecharts.charts import Piepie = (Pie().add("水果", [("苹果", 5), ("梨", 3), ("香蕉", 6), ("橙子", 8)]).set_global_opts(title_opts={"text": "水果销量"}).set_series_opts(label_opts={"formatter": "{b}: {c}"})
)
pie.render("pie_chart.html")

在这里插入图片描述

2.4 散点图(Scatter)

#!/usr/bin/env python
# coding=utf-8
"""
# @Time    : 2024/4/9 22:02
# @Author  : Summer
# @File    : pyechart.py
# @describe:
"""from pyecharts.charts import Scatterscatter = (Scatter().add_xaxis(["苹果", "梨", "橙子", "香蕉"]).add_yaxis("商家A", [5, 20, 36, 10]).set_global_opts(title_opts={"text": "散点图示例"})
)
scatter.render("scatter_chart.html")

在这里插入图片描述

2.5 地图(Map)

#!/usr/bin/env python
# coding=utf-8
"""
# @Time    : 2024/4/9 22:02
# @Author  : Summer
# @File    : pyechart.py
# @describe:
"""from pyecharts.charts import Mapmap = (Map().add("中国地图", [("广东", 100), ("北京", 120), ("上海", 150), ("重庆", 80)]).set_global_opts(title_opts={"text": "中国地图数据"})
)
map.render("china_map.html")

在这里插入图片描述

2.6 漏斗图"(Funnel)

#!/usr/bin/env python
# coding=utf-8
"""
# @Time    : 2024/4/9 22:02
# @Author  : Summer
# @File    : pyechart.py
# @describe:
"""
from pyecharts.charts import Funnel
from pyecharts import options as optsfunnel = (Funnel().add("商品",[list(z) for z in zip(["展现", "点击", "购买", "加购", "收藏"], [100, 80, 60, 40, 20])],sort_="descending",  # 定义漏斗图的排序方式,可以是'ascending', 'descending'label_opts=opts.LabelOpts(position="inside")  # 标签的位置选项).set_global_opts(title_opts=opts.TitleOpts(title="漏斗图", subtitle="纯属虚构"))
)funnel.render("funnel_chart.html")

在这里插入图片描述

2.7 动态图表

要创建数据动态变化的图表(动态图表),在Pyecharts中,一种简单的方式是通过定期更新图表数据并重新渲染图表。这种方法适合生成一系列静态HTML文件,每个文件代表数据的一个时间点,但这并不是真正的动态或实时更新。

对于实时动态更新的情况,比较推荐的方法是结合使用Pyecharts和一些Web框架(如Flask或Django),通过浏览器定时请求服务器获取最新数据,并更新前端展示的图表。这种方法会涉及到前端的JavaScript编程,需要定时向服务器请求新的数据,并用JavaScript更新图表。
以下是一个简单的使用Flask和Pyecharts实现数据动态更新的例子:

2.7.1 安装Flask:如果你还没有安装Flask,可以使用pip进行安装:
pip install flask
2.7.2 创建 Flask 应用:创建一个Python文件,比如app.py,然后编写你的Flask应用:
#!/usr/bin/env python
# coding=utf-8
"""
# @Time    : 2024/4/9 22:02
# @Author  : Summer
# @File    : pyechart.py
# @describe:
"""
from flask import Flask, render_template
from pyecharts.charts import Line
from pyecharts import options as opts
from random import randrange
import jsonapp = Flask(__name__, template_folder="templates")@app.route("/")
def index():return render_template("index.html")@app.route("/lineChart")
def get_line_chart():c = (Line().add_xaxis(["Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"]).add_yaxis("商家A", [randrange(0, 100) for _ in range(7)]).add_yaxis("商家B", [randrange(0, 100) for _ in range(7)]).set_global_opts(title_opts=opts.TitleOpts(title="Line-Chart", subtitle="随机数据")).dump_options_with_quotes()  # 将图表对象转换为JSON字符串)return json.dumps({"chart": c})  # 返回JSON响应if __name__ == "__main__":app.run(debug=True)
2.7.3 创建HTML模板:在与app.py相同的目录下创建一个templates文件夹,并在该文件夹内创建一个index.html文件:
<!DOCTYPE html>
<html>
<head><meta charset="UTF-8"><title>动态数据图表</title><!-- 引入ECharts --><script src="https://cdn.jsdelivr.net/npm/echarts/dist/echarts.min.js"></script><!-- 引入Pyecharts生成图表所需的JavaScript库 --><script src="https://cdn.jsdelivr.net/npm/echarts-gl/dist/echarts-gl.min.js"></script><script src="https://cdn.jsdelivr.net/npm/echarts-stat/dist/ecStat.min.js"></script>
</head>
<body><!-- 图表容器 --><div id="main" style="width: 600px;height:400px;"></div><script type="text/javascript">var myChart = echarts.init(document.getElementById('main'));// 定时任务获取图表数据setInterval(function() {fetch('/lineChart').then(response => response.json()).then(data => {// 使用刚指定的配置项和数据显示图表。myChart.setOption(JSON.parse(data.chart));}).catch(error => console.error(error));}, 2000); // 每2秒请求一次数据更新</script>
</body>
</html>

这个示例中,Flask 应用提供了两个路由:/用于展示图表,而/lineChart返回随机生成的图表数据。HTML页面通过JavaScript(使用fetch API)每两秒向/lineChart发送请求,获取最新的图表数据,然后通过ECharts更新图表。
在这里插入图片描述

3 pyechart 优点:

易于使用:Pyecharts提供了简洁的API,使得创建图表变得非常简单。你只需要通过几个步骤就可以快速生成一个图表。
丰富多样的图表类型:Pyecharts支持多种类型的图表,包括折线图、柱状图、饼图、散点图等,可以满足各种数据可视化需求。
高度定制化:你可以通过调整各种参数来定制图表的颜色、样式、轴标签等,以满足你的具体需求。
交互功能强大:Pyecharts生成的图表支持各种交互操作,如缩放、平移、悬停提示等,使得用户可以更深入地探索和分析数据。
支持多种输出格式:你可以将图表输出为图片、PDF、SVG等格式,方便在各种场合使用。
与Jupyter Notebook集成良好:Pyecharts与Jupyter Notebook完美集成,可以在Jupyter Notebook中直接创建和显示图表。
强大的社区支持:Pyecharts有一个活跃的社区,你可以在社区中寻求帮助、分享经验或者参与讨论。
总之,Pyecharts是一个功能强大、易于使用的Python可视化库,它可以帮助你轻松地创建出高质量的Echarts图表,满足你在数据分析和可视化方面的需求。

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

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

相关文章

深入K8S实战

K8S: 深入K8S实战进阶篇 1、搭建 Kubernetes 集群 1.1、搭建方案 1.1.1、minikube minikube 是一个工具&#xff0c; 能让你在本地运行 Kubernetes。 minikube 在你的个人计算机&#xff08;包括 Windows、macOS 和 Linux PC&#xff09;上运行一个一体化&#xff08;all-i…

「C1N短网址教程」短链接之网上生成的短链接可以用多久

网上生成的短链接可以用多久?很多人发现自己生成的短链接一会儿就失效了&#xff0c;今天我们就站在业内人士的角度说说网上生成的短链接可以用多久。 因为短链接生成之后是固定的&#xff0c;它就像我们网站的链接一样&#xff0c;只是披了层外衣&#xff0c;所以从理论上来说…

盘点MySQL热门话题(200条)

1、使用MySQL管理软件进行数据库备份&#xff0c;关键词&#xff1a;数据库备份&#xff0c;MySQL管理软件 2、优化MySQL查询性能的方法&#xff0c;关键词&#xff1a;MySQL查询优化&#xff0c;性能调优 3、如何使用MySQL进行分页查询&#xff0c;关键词&#xff1a;分页查…

透视 Insilico 英矽智能:AI 制药明星企业的飞跃、困境与破局

衰老&#xff0c;从古至今困扰了无数仁人志士。无论是千古一帝秦始皇&#xff0c;还是雄才大略汉武帝&#xff0c;亦或者挥斥方遒唐太宗&#xff0c;这些伟大的帝王无一例外的都留下了许多追求长生的故事。当时光的指针落在了 21 世纪的第二个十年&#xff0c;随着全球老龄化问…

四大生成式模型的比较——GAN、VAE、归一化流和扩散模型

比较四大模型的本质 four modern deep generative models: generative adversarial networks, variational autoencoders, normalizing flows, and diffusion models 待写

盘点最新十大热门靠谱一手接单平台,都说好用!

夸克网盘、头条网盘、迅雷网盘等网盘类项目可以说是比较炙手可热的项目&#xff0c;它因为操作简单&#xff0c;可复制强伸手拉新人士的喜欢&#xff0c;但是从哪里能对接到一手项目&#xff0c;官网渠道&#xff0c;今天小推给大家罗列了十个比较不错的拉新项目分发平台。 一…

VIM支持C/C++/Verilog/SystemVerilog配置并支持Win/Linux环境的配置

作为一个芯片公司打杂人口&#xff0c;往往需要一个皮实耐打上天入地的编辑器… 一、先附上github路径&#xff0c;方便取走 git clone gitgithub.com:qqqw4549/vim_config_c_verilog.git 二、效果展示 支持ctrl]函数/模块跳转&#xff0c;支持cscope字串全局代码搜索 依赖&am…

栈|逆波兰表达式求值

逆波兰表达式求值 题目算法原理代码实现补充 stoi的实现 题目 逆波兰表达式求值 逆波兰表达式就是后缀表达式&#xff0c;我们平时写的带括号的是中缀表达式。区分中缀表达式和后缀表达式 就是 操作数 和 操作符 的先后关系。 操作符在后 就是后缀表达式 后缀表达式 的用途就…

2024年Rust魅力:谷歌重写C++系统6大心得

讲动人的故事,写懂人的代码 2024年3月26日,谷歌安卓部门的编译器和运行时团队负责人Lars Bergstorm在英国伦敦的Rust Nation UK技术大会上,跟大家分享了他们的团队几百名工程师在几年内用Rust重写了几十个C++和Go系统的六点心得哦。 1 用Rust后生产力更高 自从我们用Rust重…

有道词典网页版接口分析与爬虫研究

说明&#xff1a;仅供学习使用&#xff0c;请勿用于非法用途&#xff0c;若有侵权&#xff0c;请联系博主删除 作者&#xff1a;zhu6201976 一、目标站点 有道词典网页版&#xff1a;网易有道 二、目标接口 url&#xff1a;https://dict.youdao.com/jsonapi_s?doctypejson&…

1.微服务

一、微服务是什么 微服务是一种架构风格&#xff0c;即&#xff0c;一个应用应该是一组小型服务&#xff0c;每个服务器只负责一种服务&#xff0c;服务之间可以通过 HTTP 的方式进行互通。每一个功能元素最终都是一个可独立替换和独立升级的软件单元。 可以说&#xff0c;微…

全国项目管理标准化技术委员会副秘书长肖杨先生受邀为第十三届中国PMO大会演讲嘉宾

全国PMO专业人士年度盛会 全国项目管理标准化技术委员会副秘书长、微薄之力&#xff08;北京&#xff09;管理咨询有限公司董事长肖杨先生受邀为PMO评论主办的2024第十三届中国PMO大会演讲嘉宾&#xff0c;演讲议题为“数字化时代下&#xff0c;由职能型组织向高度适应性组织转…

五款高性能开放式耳机推荐,户外畅听无拘束!

在追求运动乐趣的同时&#xff0c;我们也需要关注自身的安全。开放式蓝牙耳机作为一种新型的耳机类型&#xff0c;正逐渐受到运动爱好者的青睐。它的独特之处在于能够在佩戴时保持对周围环境的警觉性&#xff0c;让你在享受音乐的同时不忘安全。那么&#xff0c;如何选购一款适…

JavaWeb | 5 监听器与FreeMarker

JavaWeb | 5 监听器与FreeMarker 监听器 Listener开发监听器三要素六种常用监听接口内置对象监听接口属性监听接口 项目中监听器的应用场景 FreeMarker模板引擎FreeMarkerJSP与FreeMarkerFreeMarker快速上手FTL取值if分支判断switch分支判断list迭代内建函数 监听器 Listener 对…

推荐学习什么编程语言?

选择编程语言学习时&#xff0c;除了就业因素外&#xff0c;还可以考虑以下几个方面来决定学习哪些编程语言&#xff1a; 个人兴趣与目标&#xff1a;如果你对某个特定领域感兴趣&#xff0c;比如游戏开发、数据分析、人工智能等&#xff0c;可以选择与该领域紧密相关的编程语言…

B站广告推广操作教程及费用?

哔哩哔哩&#xff08;B站&#xff09;作为国内极具影响力的年轻人文化社区&#xff0c;已成为众多品牌与企业触达目标受众、提升品牌影响力的重要阵地。然而&#xff0c;面对B站复杂的广告系统与精细化运营需求&#xff0c;许多广告主可能对如何高效开展B站广告推广感到困惑。云…

2023图灵奖得主揭晓!史上首位计算机和数学最高奖“双料王”诞生

重磅消息&#xff01;北京时间4月10日下午5点整&#xff0c;ACM宣布把2023年图灵奖颁给Avi Wigderson&#xff0c;以表彰Wigderson对计算理论和随机性做出的奠基性贡献。 ACM图灵奖通常被称为“计算机领域的诺贝尔奖”&#xff0c;奖金为100万美元&#xff0c;通常颁发给计算机…

Asterisk 21.2.0编译安装经常遇到的问题和解决办法之json

目录 写在json之前Asterisk requires libjansson 写在json之前 在讨论jansson之前&#xff0c;我们先来看另外一个问题&#xff1a; checking for libedit… no checking for history_init in -ledit… no configure: error: *** Please install the ‘libedit’ development …

【MYSQL锁】透彻地理解MYSQL锁

&#x1f525;作者主页&#xff1a;小林同学的学习笔录 &#x1f525;mysql专栏&#xff1a;小林同学的专栏 目录 1.锁 1.1 概述 1.2 全局锁 1.2.1 语法 1.2.1.1 加全局锁 1.2.1.2 数据备份 1.2.1.3 释放锁 1.2.1.4 特点 1.2.1.5 演示 1.3 表级锁 1.3.1 介绍 …

03-JAVA设计模式-建造者模式

建造者模式 什么是建造者模式 建造者模式&#xff08;Builder Pattern&#xff09;是一种对象构建的设计模式&#xff0c;它允许你通过一步一步地构建一个复杂对象&#xff0c;来隐藏复杂对象的创建细节。 这种模式将一个复杂对象的构建过程与其表示过程分离&#xff0c;使得…