数据分析 — 动画图 pyecharts

目录

  • 一、概念
  • 二、安装和导入
  • 三、绘图逻辑
  • 四、绘图
    • 1、柱状图
    • 2、折线图
    • 3、散点图
    • 4、饼图
    • 5、南丁格尔图
    • 6、Geo() 地理坐标第
    • 7、Map() 绘制区域
    • 8、词云图
    • 9、层叠图
    • 10、3D 图
    • 11、仪表板

一、概念

Pyecharts 是一个基于 Echarts 的 Python 可视化库,它通过 Python 生成 Echarts 的图表,并支持多种常见的图表类型,如折线图、柱状图、散点图、饼图等。
官网地址:https://pyecharts.org/#/zh-cn/intro

二、安装和导入

pip install pyecharts

from pyecharts.charts import * # 从 pyecharts.charts 模块中导入所有类

三、绘图逻辑

1、选择图表类型

2、声明图形类

3、选择全局变量

4、显示及保存图表

四、绘图

1、柱状图

from pyecharts.charts import Bar  # 从 pyecharts.charts 模块中导入 Bar 类# 定义月份和对应的消费金额数据
months = ['一月', '二月', '三月', '四月', '五月', '六月']
cost = [1200, 1500, 1800, 1400, 1600, 2000]# 创建一个 Bar 对象
bar = (Bar()  # 调用 Bar 类的构造函数.add_xaxis(months)  # 添加 x 轴的数据,即月份.add_yaxis('消费金额', cost)  # 添加 y 轴的数据,即消费金额,'消费金额' 为系列的名称
)# 将图表保存为 HTML 文件,路径为 './bar.html'
bar.render('./bar.html')

在这里插入图片描述

2、折线图

# 从 pyecharts.charts 模块中导入 Line 类
from pyecharts.charts import Line# 定义一周的日期和对应的温度、湿度数据
days = ['周一', '周二', '周三', '周四', '周五', '周六', '周日']
temperatures = [28, 29, 30, 32, 31, 30, 29]
humidity = [40, 50, 70, 65, 45, 55]# 创建一个 Line 对象
line = (Line()  # 调用 Line 类的构造函数.add_xaxis(days)  # 添加 x 轴的数据,即日期.add_yaxis('折线图1', temperatures)  # 添加第一条 y 轴的数据,即温度,'折线图1' 为系列的名称.add_yaxis('折线图2', humidity)  # 添加第二条 y 轴的数据,即湿度,'折线图2' 为系列的名称
)# 将图表保存为 HTML 文件,路径为 './line.html'
line.render('./line.html')

在这里插入图片描述

3、散点图

from pyecharts.charts import Scatter  # 从 pyecharts.charts 模块中导入 Scatter 类# 定义一周的日期和对应的温度、湿度数据
cities = ['北京', '上海', '广州', '深圳', '成都', '重庆']
days = ['周一', '周二', '周三', '周四', '周五', '周六', '周日']
temperatures = [32, 33, 30, 31, 28, 30]
humidity = [40, 50, 70, 65, 45, 55]# 创建一个 Scatter 对象
scatter = (Scatter()  # 调用 Scatter 类的构造函数.add_xaxis(days)  # 添加 x 轴的数据,即日期.add_yaxis('温度', temperatures)  # 添加第一条 y 轴的数据,即温度,'温度' 为系列的名称.add_yaxis('湿度', humidity)  # 添加第二条 y 轴的数据,即湿度,'湿度' 为系列的名称
)# 将图表保存为 HTML 文件,路径为 './scatter.html'
scatter.render('./scatter.html')

在这里插入图片描述

4、饼图

from pyecharts.charts import Pie  # 从 pyecharts.charts 模块中导入 Pie 类# 定义水果和对应的销量数据
fruits = ['苹果', '香蕉', '橙子', '草莓', '葡萄']
sales = [45, 30, 25, 20, 15]
# 将水果和销量数据组合成一个列表
data = [list(z) for z in zip(fruits, sales)]# 创建一个 Pie 对象
pie = (Pie()  # 调用 Pie 类的构造函数.add(  # 添加数据series_name='水果销量',  # 设置系列的名称data_pair=data,  # 设置数据对,包含水果和对应的销量)
)# 将图表保存为 HTML 文件,路径为 './pie.html'
pie.render('./pie.html')

在这里插入图片描述

5、南丁格尔图

from pyecharts.charts import Pie  # 从 pyecharts.charts 模块中导入 Pie 类
from pyecharts import options as opts  # 从 pyecharts.options 模块中导入 opts 类# 定义水果和对应的销量数据
fruits = ['苹果', '香蕉', '橙子', '草莓', '葡萄']
sales = [45, 30, 25, 20, 15]
# 将水果和销量数据组合成一个列表
data = [list(z) for z in zip(fruits, sales)]# 创建一个 Pie 对象,并设置半径、标签格式和玫瑰图样式
pie2 = (Pie()  # 调用 Pie 类的构造函数.add(  # 添加数据series_name='水果销量',  # 设置系列的名称data_pair=data,  # 设置数据对,包含水果和对应的销量radius=['40%', '60%'],  # 设置饼图的半径范围label_opts=opts.LabelOpts(formatter="{b}:{d}%"),  # 设置标签的格式,显示水果名称和销量占比rosetype="radius"  # 设置玫瑰图样式,即设置为半径模式)
)# 将图表保存为 HTML 文件,路径为 './pie_radius.html'
pie2.render('./pie2.html')

在这里插入图片描述

6、Geo() 地理坐标第

from pyecharts.charts import Geo  # 从 pyecharts.charts 模块中导入 Geo 类
from pyecharts import options as opts  # 从 pyecharts.options 模块中导入 opts 类
import random  # 导入 random 模块# 定义省份数据,以及每个省份的随机数据(模拟数据)
province = ['广东', '湖北', '湖南', '四川', '重庆', '黑龙江','浙江', '山西', '河北', '安徽', '河南', '山东', '西藏'
]
data = [(i, random.randint(50, 150)) for i in province]# 创建一个 Geo 对象,并设置地图类型为 "china"
geo = (Geo()  # 调用 Geo 类的构造函数.add_schema(maptype="china")  # 设置地图类型为中国地图.add("", data)  # 添加数据,data 中包含省份和对应的随机数据.set_series_opts(label_opts=opts.LabelOpts(is_show=True))  # 设置系列的标签选项,显示省份名称.set_global_opts(visualmap_opts=opts.VisualMapOpts(  # 设置全局的视觉映射选项is_piecewise=True,  # 设置为分段型视觉映射pieces=[{'min': 50, 'max': 100, 'label': '50-100'},  # 视觉映射的分段设置{'min': 100, 'max': 150, 'label': '100-150'}]))
)# 将图表保存为 HTML 文件,路径为 './geo.html'
geo.render('./geo.html')

在这里插入图片描述

7、Map() 绘制区域

from pyecharts.charts import Map  # 从 pyecharts.charts 模块中导入 Map 类
from pyecharts import options as opts  # 从 pyecharts.options 模块中导入 opts 类
import random  # 导入 random 模块# 定义省份数据,以及每个省份的随机数据(模拟数据)
province = ['广东省', '湖北省', '湖南省', '四川省', '重庆市', '黑龙江省','浙江省', '山西省', '河北省', '安徽省', '河南省', '山东省', '西藏自治区'
]
data = [(i, random.randint(50, 250)) for i in province]
# 创建一个 Map 对象,并添加数据
map = Map()
map.add('确诊人数', data)# 设置全局选项,包括标题和视觉映射的设置
map.set_global_opts(title_opts=opts.TitleOpts(title='全国疫情地图'),  # 设置地图的标题visualmap_opts=opts.VisualMapOpts(  # 设置视觉映射的选项is_piecewise=True,  # 设置为分段型视觉映射pieces=[{'min': 50, 'max': 99, 'label': '50-99人', 'color': 'yellow'},  # 视觉映射的分段设置{'min': 100, 'max': 149, 'label': '100-149人', 'color': 'pink'},{'min': 150, 'max': 199, 'label': '150-199人', 'color': 'green'},{'min': 200, 'max': 250, 'label': '200-250人', 'color': 'red'}])
)# 将图表保存为 HTML 文件,路径为 './map.html'
map.render('./map.html')

在这里插入图片描述

8、词云图

from pyecharts.charts import WordCloud  # 从 pyecharts.charts 模块中导入 WordCloud 类# 定义词云数据,每个元组包含单词和对应的频率
words = [("economy", 1230),("jude", 124),("dont", 436),("make", 255),("it", 247),("bad", 244),("Take", 138),("a sad song", 184),("and", 12),("make", 165),("it", 247),("better", 182),("remember", 255),("to", 150),("let", 162),("her", 266),("into", 60),("your", 82),("heart", 173),("then", 365),("you", 360),("can", 282),("start", 273),("make", 265),
]# 创建一个 WordCloud 对象,并添加词云数据
wc = (WordCloud()  # 调用 WordCloud 类的构造函数.add("", words)  # 添加词云数据,空字符串表示没有系列名称
)# 将词云图保存为 HTML 文件,路径为 './wc.html'
wc.render('./wc.html')

在这里插入图片描述

9、层叠图

from pyecharts.charts import Bar, Line  # 从 pyecharts.charts 模块中导入 Bar 和 Line 类# 定义横轴数据(x 轴)
x_data = ['Apple', 'Huawei', 'Xiaomi', 'Oppo', 'Vivo', 'Meizu']
# 定义柱状图的纵轴数据
y_data_bar = [123, 153, 89, 107, 98, 23]
# 定义折线图的纵轴数据
y_data_line = [153, 107, 23, 89, 123, 107]# 创建柱状图对象,添加横轴和纵轴数据
bar = (Bar()  # 调用 Bar 类的构造函数.add_xaxis(x_data)  # 添加横轴数据.add_yaxis('', y_data_bar)  # 添加柱状图的纵轴数据,空字符串表示没有系列名称
)
# 创建折线图对象,添加横轴和纵轴数据
line = (Line()  # 调用 Line 类的构造函数.add_xaxis(x_data)  # 添加横轴数据.add_yaxis('', y_data_line)  # 添加折线图的纵轴数据,空字符串表示没有系列名称
)# 将折线图和柱状图进行重叠
overlap = line.overlap(bar)
# 将重叠图保存为 HTML 文件,路径为 './overlap.html'
overlap.render('./overlap.html')

在这里插入图片描述

10、3D 图

from pyecharts.charts import Bar3D  # 从 pyecharts.charts 模块中导入 Bar3D 类# 定义三维柱状图的数据,数据为一个二维列表
data = [[1, 2, 3],[4, 5, 6],[7, 8, 9]
]
# 创建一个三维柱状图对象,添加数据
bar3d = Bar3D()  # 调用 Bar3D 类的构造函数
bar3d.add("", data)  # 添加三维柱状图的数据,空字符串表示没有系列名称# 将三维柱状图保存为 HTML 文件,路径为 './bar3d.html'
bar3d.render('./bar3d.html')

在这里插入图片描述

11、仪表板

import numpy as np  # 导入 NumPy 库并使用别名 np
from pyecharts.charts import *  # 从 pyecharts.charts 模块中导入所有类
from pyecharts.charts import Page  # 从 pyecharts.charts 模块中导入 Page 类# 定义柱状图函数
def bar():# 定义横轴和纵轴数据x_data = ["水笔", "铅笔", "钢笔", "圆珠笔"]y_data = [40, 30, 98, 42]# 创建柱状图对象,添加横轴和纵轴数据bar = (Bar().add_xaxis(x_data).add_yaxis("", y_data))return bar# 定义折线图函数
def line():# 定义横轴和纵轴数据x_data = ['Apple', 'Huawei', 'Xiaomi', 'Oppo', 'Vivo', 'Meizu']y_data = [123, 153, 89, 107, 98, 23]# 创建折线图对象,添加横轴和纵轴数据line = (Line().add_xaxis(x_data).add_yaxis('呵呵', y_data))return line# 定义散点图函数
def scatter():# 生成正弦函数数据x = np.linspace(0, 2 * np.pi, 100)y = np.sin(x)# 创建散点图对象,添加横轴和纵轴数据scatter = (Scatter().add_xaxis(x).add_yaxis("正弦", y))return scatter# 定义饼图函数
def pie():# 定义饼图数据num = [110, 136, 108, 48, 111, 112, 103]lab = ['哈士奇', '萨摩耶', '泰迪', '金毛', '牧羊犬', '吉娃娃', '柯基']data_pair_ = list(zip(lab, num))# 创建饼图对象,添加数据pie = (Pie().add('饼图',data_pair=data_pair_,rosetype='radius',radius=["20%", "45%"]))return pie# 创建一个可拖动页面,设置页面标题
page = Page(layout=Page.DraggablePageLayout, page_title='haha')# 添加各种图表到页面
page.add(bar(),line(),scatter(),pie()
)# 将页面保存为 HTML 文件,路径为 './大屏.html'
page.render('./大屏.html')

在这里插入图片描述

拖动图表排列顺序后,点击 Save Config 按钮,将下载的 chart_config.json 保存至 大屏.html 同目录下

from pyecharts.charts import Page  # 从 pyecharts.charts 模块中导入 Page 类
# 创建一个可拖动页面,设置页面标题
page = Page(layout=Page.DraggablePageLayout, page_title='haha')
# 保存配置后的文件
# page.save_resize_html(原html文件,拖拽保存的配置文件,成品的保存路径)
page.save_resize_html(r'./大屏.html',cfg_file='chart_config.json',dest="./大屏显示.html")

在这里插入图片描述

记录学习过程,欢迎讨论交流,尊重原创,转载请注明出处~

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

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

相关文章

云计算基础-快照与克隆

快照及克隆 什么是快照 快照是数据存储的某一时刻的状态记录,也就是把虚拟机当前的状态保存下来(快照不是备份,快照保存的是状态,备份保存的是副本) 快照优点 速度快,占用空间小 快照工作原理 在了解快照原理前,…

WordPress主题YIA移动端文章页的面包屑不显示怎么办?

平时我们一般都会在文章页导航菜单下方显示面包屑,类似于“当前位置:boke112百科 WordPress 正文”。平时用浏览器调试站点的时候,在Edge浏览器的“切换设备仿真”中,不管是选择什么设备都会显示面包屑。具体如下图所示&#xf…

抓包分析 TCP 协议

TCP 协议是在传输层中,一种面向连接的、可靠的、基于字节流的传输层通信协议。 环境准备 对接口测试工具进行分类,可以如下几类: 网络嗅探工具:tcpdump,wireshark 代理工具:fiddler,charles&…

3分钟了解Android中稳定性测试

一、什么是Monkey Monkey在英文里的含义是猴子,在测试行业的学名叫“猴子测试”,指的是没有测试经验的人甚至是根本不懂计算机的人(就像一只猴子),不需要知道程序的任何用户交互方面的知识,给他一个程序&a…

LeetCode刷题计划

LeetCode刷题计划 推荐 代码随想录&#xff1a;https://github.com/youngyangyang04/leetcode-master 卡码网 练习ACM模式 https://kamacoder.com/ 01 #include <iostream> using namespace std;int main() {int a ,b;while(cin>>a>>b){cout<<ab<…

基于51/STM32单片机的智能药盒 物联网定时吃药 药品分类

功能介绍 以51/STM32单片机作为主控系统&#xff1b; LCD1602液晶显示当前时间、温湿度、药品重量 3次吃药时间、药品类目和药品数量 HX711压力采集当前药品重量 红外感应当前药盒是否打开 DS1302时钟芯片显示当前年月日、时分秒、星期 DHT11采集当前环境温度和湿度 …

【presto权威指南】presto介绍

需求&#xff1a;如何从众多数据源中快速处理数据 现实生产架构多源异构&#xff0c;需要一个强有力的工具&#xff08;抽象&#xff09;统一数据查询/分析 这也是presto/trino从诞生之初便贴数据湖查询工具 tag的原因&#xff0c;presto生来为此 生产环境的困境 1.数据源众多…

无货源?想要1688平台货源,商品采集,第三方API来帮你实现

阿里巴巴(1688.com)批发网是全球企业间(B2B)电子商务的著名品牌&#xff0c;为天下网商提供海量商机信息和便捷安全的在线交易市场。从海量的商品中甄选热销新品、优质好商&#xff0c;为买家采购批发提供风向标。 不少做跨境电商无货源的朋友都想要直接从1688源头厂家拿货&am…

NOTA-马来酰亚胺,1295584-83-6,可作为过渡金属离子的配体

您好&#xff0c;欢迎来到新研之家 文章关键词&#xff1a;NOTA-马来酰亚胺&#xff0c;NOTA Maleimide &#xff0c;NOTA-Mal&#xff0c;1295584-83-6 一、基本信息 产品简介&#xff1a;NOTA Maleimide, also known as NOTA maleimide, is a novel bifunctional integrat…

SQL-Labs靶场“1-5”关通关教程

君衍. 一、准备工作二、第一关 基于GET单引号字符型注入1、源码分析2、联合查询注入过程 三、第二关 基于GET整型注入1、源码分析2、联合查询注入过程 四、第三关 基于GET单引号变形注入1、源码分析2、联合查询注入过程 五、第四关 基于GET双引号字符型注入1、源码分析2、联合查…

程序员金三银四跳槽指南:时间线经典面试16问

祝大家成功上岸&#xff0c;升职加薪&#xff0c;冲鸭 &#x1f389; 金三银四 今天复工&#xff0c;就要开始准备啦&#x1f4bc;✨ 把握好打工人跳槽的金三银四&#xff0c;获得满意的新工作 &#x1f389; 时间线 年后跳槽时间线&#xff0c;过完年刚好开始准备&#xf…

谁懂啊!自从用了这个管理神器,空调系统运行效率翻两番!

在当今高度竞争的商业环境中&#xff0c;对于各行各业而言&#xff0c;提高效率、降低成本、确保生产和服务质量是至关重要的任务。 精密空调监控系统作为一项先进的技术应用&#xff0c;通过实时监测和智能调控&#xff0c;有效管理和控制环境参数&#xff0c;从而在不同行业和…

FPGA转行ISP的探索之一:行业概览

ISP的行业位置 最近看到一个分析&#xff0c;说FPGA的从业者将来转向ISP&#xff08;Image Signal Process图像信号处理&#xff09;是个不错的选择&#xff0c;可以适应智能汽车、AI等领域。故而我查了一下ISP&#xff0c;对它大致有个概念。 传统的ISP对应的是相机公司&…

【Python】【Pycharm】Python Script头文件设置

1、步骤&#xff1a;File->settings->Editor->File and CodeTemplates->Python Script 2、复制粘贴以下代码&#xff0c;应用即可&#xff1a; #!/usr/bin/env python # -*- coding: utf-8 -*-# Time :${DATE} ${TIME} # Author : admin # Site :${SITE} …

【C++】中类的6个默认成员函数 取地址及const成员函数 学习运算符重载 【实现一个日期类】

文章目录 一、【C】赋值运算符重载1.1 运算符重载【引入】1.2 运算符重载1.3 赋值运算符重载1.4 赋值 二、日期类的实现2.1 判断小于2.2 判断等于2.3 判断小于等于2.4 判断大于2.5 判断大于等于2.6 判断不等于2.7 日期加等天数2.8 获取月份天数2.9 日期加天数2.9.1 日期减等天数…

原生微信小程序开发记录

1. 拿到项目 先构建 2.小程序与普通网页开发的区别 网页开发渲染线程和脚本线程是互斥的&#xff0c;这也是为什么长时间的脚本运行可能会导致页面失去响应&#xff0c;而在小程序中&#xff0c;二者是分开的&#xff0c;分别运行在不同的线程中。网页开发者可以使用到各种浏览…

Redis系列学习文章分享---第一篇(Redis快速入门之初始Redis--NoSql+安装redis+客户端+常用命令)

目录 今天开始进入Redis系列学习分享1.初识Redis1.1.认识NoSQL1.1.1.结构化与非结构化1.1.2.关联和非关联1.1.3.查询方式1.1.4.事务1.1.5.总结 1.2.认识Redis1.3.安装Redis1.3.1.依赖库1.3.2.上传安装包并解压1.3.3.启动1.3.4.默认启动1.3.5.指定配置启动1.3.6.开机自启 1.4.Re…

【知识点】CNN中concat与add的区别

cat操作经常用于将特征联合&#xff0c;多个卷积特征提取框架提取的特征融合或者是将输出层的信息进行融合&#xff1b;而add层更像是信息之间的叠加。 add是在一个特征上增加其语义信息&#xff0c;对最终的图像的分类是有益&#xff1b;cat导致的结果改进可能是由于cat操作通…

机器学习---HMM前向、后向和维特比算法的计算

1. HMM import numpy as np# In[15]:class HiddenMarkov:def forward(self, Q, V, A, B, O, PI): # 使用前向算法N len(Q) # 状态序列的大小M len(O) # 观测序列的大小alphas np.zeros((N, M)) # alpha值T M # 有几个时刻&#xff0c;有几个观测序列&#xff0c;就有…

2024 前端面试题(GPT回答 + 示例代码 + 解释)No.114 - No.121

本文题目来源于全网收集&#xff0c;答案来源于 ChatGPT 和 博主&#xff08;的小部分……&#xff09; 格式&#xff1a;题目 h3 回答 text 参考大佬博客补充 text 示例代码 code 解释 quote 补充 quote 上一篇链接&#xff1a;2024 前端面试题&#xff08;GPT回答 示例…