Python学习之-pyechart详解

news/2024/5/3 12:41:55/文章来源:https://blog.csdn.net/weixin_41238626/article/details/137569424

前言:

什么是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.luyixian.cn/news_show_1045775.aspx

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

相关文章

高标清4K音视频编码处理平台JR600系列

详细介绍&#xff1a; JR600编码处理平台具备6个模组高集成化数字前端综合型设备&#xff0c;每个模块可单独配置&#xff0c;包括4x3G-SDI&#xff08;4KHEVC/H.265)超高清编码板卡、HD-SDI编码板卡、数字/模拟音频编码板卡、模拟视频编码板卡这些功能的组合。因该设备的高度…

酷开科技在大数据及人工智能推动下,成功将酷开系统与AI融合

随着科技的不断发展&#xff0c;以及大数据这个概念的出现&#xff0c;让看似冷冰冰的数字开始具备了温度&#xff0c;开始让数字产生了温暖的价值&#xff0c;也让各个行业看到了大数据的作用。酷开科技生态的核心场景是家庭、是客厅&#xff0c;无论是以酷开科技为代表的OTT&…

3. DAX 时间函数-- DATE 日期--一生二,二生三,三生万物

在数据分析过程中&#xff0c;经常需要从一个数据推到另外一个数据&#xff0c;日期数据也是如此&#xff0c;需要从一个日期推到另外一个相关的日期&#xff0c;或者从一群日期推到另外一个相关的日期/一群相关的日期。这一期说的就是日期之间彼此推衍的函数&#xff0c;会比之…

实战项目——智慧社区(一)

1、项目介绍 系统功能 登录、修改密码、登出 &#xff08;1&#xff09;首页 &#xff08;1.1&#xff09;数据统计&#xff1a;小区人员统计对比图&#xff0c;占比图 &#xff08;2&#xff09;物业管理 &#xff08;2.1&#xff09;小区管理&#xff1a;小区数据的增删改…

WordPress PHP内存限制优化,WordPress性能优化,提升WordPress PHP内存,防止内存溢出

它发生在所有WordPress网站所有者和管理员最终&#xff1a;可怕的WordPress内存错误。当你正在为自己的网站添加新的内容或媒体时&#xff0c;突然弹出一条消息&#xff1a;“致命错误&#xff1a;允许的内存大小为xxxxxx字节。”刚刚发生了什么&#xff1f;为什么WordPress会内…

【Vue + keep-alive】路由缓存

一. 需求 列表页&#xff0c;n 条数据项可打开 n 个标签页&#xff0c;同时1条数据项的查看和编辑共用一个标签页。如下所示&#xff1a; 参考 // 主页面 // 解决因 路由缓存&#xff0c;导致 编辑后跳转到该页面 不能实时更新数据 onActivated(() > {getList() })二. 实现…

电压继电器SRMUVS-220VAC-2H2D 导轨安装 JOSEF约瑟

系列型号&#xff1a; SRMUVS-58VAC-2H欠电压监视继电器&#xff1b;SRMUVS-100VAC-2H欠电压监视继电器&#xff1b; SRMUVS-110VAC-2H欠电压监视继电器&#xff1b;SRMUVS-220VAC-2H欠电压监视继电器&#xff1b; SRMUVS-58VAC-2H2D欠电压监视继电器&#xff1b;SRMUVS-100…

Spark_SparkSql写入Oracle_Undefined function.....将长字符串写入Oracle中方法..

在使用Spark编写代码将读库处理然后写入Oracle中遇到了诸多小bug,很磨人。shit!! 实测1&#xff1a;TO_CLOB(a3) 代码样例 --这是一个sparksql写入hive的一个小逻辑&#xff0c;我脱敏了噻 SELECT a1, a2, TO_CLOB(a3) AS clob_data, TO_DATE(a4) AS time FROM table1 WHERE…

2014最新AIGC创作系统ChatGPT网站源码+AI绘画网站源码+GPT4-All联网搜索模型

一、文章前言 SparkAi创作系统是基于ChatGPT进行开发的Ai智能问答系统和Midjourney绘画系统&#xff0c;支持OpenAI-GPT全模型国内AI全模型。本期针对源码系统整体测试下来非常完美&#xff0c;那么如何搭建部署AI创作ChatGPT&#xff1f;小编这里写一个详细图文教程吧。已支持…

鸿蒙HarmonyOS开发实战:【分布式音乐播放】

介绍 本示例使用fileIo获取指定音频文件&#xff0c;并通过AudioPlayer完成了音乐的播放完成了基本的音乐播放、暂停、上一曲、下一曲功能&#xff1b;并使用DeviceManager完成了分布式设备列表的显示和分布式能力完成了音乐播放状态的跨设备分享。 本示例用到了与用户进行交…

二:深入理解 JAVA 内存模型 JMM

目录 1、为什么要有内存模型1.1、为什么要有多级缓存&#xff1f;1.2、缓存一致性问题1.3、处理器优化和指令重排 2、并发编程的三大问题2.1、原子性问题2.2、有序性问题2.3、可见性问题2.4、三大特性 3、什么是内存模型&#xff1f;3.1、概念3.2、内存模型到底是怎么保证缓存一…

【Qt】:对话框(一)

对话框 一.基本的对话框二.自定义对话框三.通过图形化界面自定义对话框四.关于对话框mode 对话框是GUI程序中不可或缺的组成部分。一些不适合在主窗口实现的功能组件可以设置在对话框中。对话框通常是一个顶层窗口&#xff0c;出现在程序最上层&#xff0c;用于实现短期任务或者…

小程序项目思路分享爬虫

小程序项目思路分享爬虫 具体需求&#xff1a; 有这几个就行&#xff0c;门店名称门店地址门店类型&#xff0c;再加上省、市、县/区门店名称&#xff1a;storeName 门店地址&#xff1a;storeAddress 程序运行&#xff1a; honor_spider获取经纬度信息。 经纬度——>详…

CentOS上使用cgroup限制进程使用内存

安装cgroup 要使用cgroup首先需要系统支持&#xff0c;需要安装两个rpm包 yum install libcgroup libcgroup-tools 创建限制内存的cgroup组 cgroup组需要在/sys/fs/cgroup/memory目录下创建&#xff0c;我们创建一个限制进程内存大小为10M的cgroup组&#xff0c;这个组中内存…

云计算重要概念之:虚拟机、网卡、交换机、路由器、防火墙

一、虚拟机 (Virtual Machine, VM) 1.主流的虚拟化软件&#xff1a; 虚拟化软件通过在单个物理硬件上创建和管理多个虚拟环境&#xff08;虚拟机&#xff09;&#xff0c;实现资源的高效利用、灵活部署、隔离安全以及便捷管理&#xff0c;是构建云计算和现代化数据中心的核心…

【Linux】初识Linux,虚拟机安装Linux系统,配置网卡

前言 VMware软件&#xff1a;首先&#xff0c;确保您已经下载了VMware Workstation软件并安装在电脑上。VMware Workstation是一款功能强大的虚拟化软件&#xff0c;它允许在单一物理机上运行多个操作系统。 Linux镜像文件&#xff1a;需要准备一个Linux操作系统的镜像文件。…

华为ensp中PPP(点对点协议)中的PAP认证 原理和配置命令

作者主页&#xff1a;点击&#xff01; ENSP专栏&#xff1a;点击&#xff01; 创作时间&#xff1a;2024年4月8日14点31分 PPP协议&#xff08;Point-to-Point Protocol&#xff09;是点到点协议&#xff0c;是一种常用的串行链路层协议&#xff0c;用于在两个节点之间建立点…

如何保证消息不丢失?——使用rabbitmq的死信队列!

如何保证消息不丢失?——使用rabbitmq的死信队列&#xff01; 1、什么是死信 在 RabbitMQ 中充当主角的就是消息&#xff0c;在不同场景下&#xff0c;消息会有不同地表现。 死信就是消息在特定场景下的一种表现形式&#xff0c;这些场景包括&#xff1a; 消息被拒绝访问&am…

全国水科技大会 免费征集《水环境治理减污降碳协同增效示范案例》

申报时间截止到2024年4月15日&#xff0c;请各单位抓紧申报&#xff0c;申报条件及申报表请联系&#xff1a;13718793867 围绕水环境治理减污降碳协同增效领域&#xff0c;以资源化、生态化和可持续化为导向&#xff0c;面向生态、流城、城市、农村、工业园区、电力、石化、钢…

前端mock数据——使用mockjs进行mock数据

前端mock数据——使用mockjs进行mock数据 一、安装二、mockjs的具体使用 一、安装 首选需要有nodejs环境安装mockjs&#xff1a;npm install mockjs 若出现像上图这样的错&#xff0c;则只需npm install mockjs --legacy-peer-deps即可 src下新建mock文件夹&#xff1a; mo…