9-数据可视化-动态柱状图
文章目录
- 1.基础柱状图
- 2.基础时间线柱状图
- 3.动态柱状图
1.基础柱状图
from pyecharts.charts import Bar
bar = Bar() # 构建柱状图对象
bar.add_xaxis(["中国","美国","英国"])
bar.add_yaxis("GDP",[30,20,10])
bar.render()
反转xy轴
bar.reversal_axis()
from pyecharts.charts import Bar
bar = Bar() # 构建柱状图对象
bar.add_xaxis(["中国","美国","英国"])
bar.add_yaxis("GDP",[30,20,10])
bar.reversal_axis() # 【反转】
bar.render()
若将数字(10、20、30)移到右侧
from pyecharts.options import LabelOpts
label_opts=LabelOpts(position=“right”)
from pyecharts.charts import Bar
from pyecharts.options import LabelOpts # 【新增】
bar = Bar() # 构建柱状图对象
bar.add_xaxis(["中国","美国","英国"])
bar.add_yaxis("GDP",[30,20,10],label_opts=LabelOpts(position="right")) # 【修改】
bar.reversal_axis() # 反转
bar.render()
2.基础时间线柱状图
from pyecharts.charts import Bar, Timeline
from pyecharts.options import LabelOptsbar1 = Bar() # 构建柱状图对象
bar1.add_xaxis(["中国","美国","英国"])
bar1.add_yaxis("GDP",[30,20,10],label_opts=LabelOpts(position="right"))
bar1.reversal_axis()bar2 = Bar() # 构建柱状图对象
bar2.add_xaxis(["中国","美国","英国"])
bar2.add_yaxis("GDP",[50,40,30],label_opts=LabelOpts(position="right"))
bar2.reversal_axis()bar3 = Bar() # 构建柱状图对象
bar3.add_xaxis(["中国","美国","英国"])
bar3.add_yaxis("GDP",[60,20,50],label_opts=LabelOpts(position="right"))
bar3.reversal_axis()timeline=Timeline()
timeline.add(bar1,"点1")
timeline.add(bar2,"点2")
timeline.add(bar3,"点3")
timeline.render()
为效果图设置自动播放
timeline.add_schema(play_interval=500, # 每1000毫秒自动切换下一个点is_timeline_show=True, # 显示时间线is_auto_play=True, # 是否自动播放is_loop_play=True # 是否循环播放
)
为效果图设置颜色
from pyecharts.globals import ThemeType
timeline=Timeline({"theme":ThemeType.LIGHT}) # 设置主题theme
完整代码
from pyecharts.charts import Bar, Timeline
from pyecharts.globals import ThemeType
from pyecharts.options import LabelOptsbar1 = Bar()
bar1.add_xaxis(["中国","美国","英国"])
bar1.add_yaxis("GDP",[30,20,10],label_opts=LabelOpts(position="right"))
bar1.reversal_axis()bar2 = Bar()
bar2.add_xaxis(["中国","美国","英国"])
bar2.add_yaxis("GDP",[50,40,30],label_opts=LabelOpts(position="right"))
bar2.reversal_axis()bar3 = Bar()
bar3.add_xaxis(["中国","美国","英国"])
bar3.add_yaxis("GDP",[60,20,50],label_opts=LabelOpts(position="right"))
bar3.reversal_axis()timeline=Timeline({"theme":ThemeType.LIGHT}) # 设置颜色
timeline.add(bar1,"点1")
timeline.add(bar2,"点2")
timeline.add(bar3,"点3")timeline.add_schema( # 自动切换play_interval=500, # 每1000毫秒自动切换下一个点is_timeline_show=True, # 显示时间线is_auto_play=True, # 是否自动播放is_loop_play=True # 是否循环播放
)timeline.render()
效果图
3.动态柱状图
(1)sort方法
a=[["a",5],["b",3],["c",9]] # 数据a是由列表组成的列表def f(x): # 对列表的1号下标(数字)排序return x[1]a.sort(key=f,reverse=True)
# 用key指明排序函数,明确参照哪个数据对列表排序
# reverse=True 表示由大到小排序print(a) # [['c', 9], ['a', 5], ['b', 3]]
也可使用匿名函数书写
a=[["a",5],["b",3],["c",9]] # 由列表组成的列表a.sort(key=lambda x:x[1],reverse=True) print(a) # [['c', 9], ['a', 5], ['b', 3]]
(2)数据下载
数据下载
使用记事本打开(第一行无效数据)
(3)数据处理与绘图
from pyecharts.charts import Bar, Timeline
from pyecharts.globals import ThemeType
from pyecharts.options import LabelOpts, TitleOptsf=open("D:/1960-2019全球GDP数据.csv","r",encoding="GB2312") # 注意编码,与源文档一致
data_lines=f.readlines()
# readlines按照行的方式把整个文件中的内容进行一次性读取,返回一个列表,其中每一行的数据为一个元素
f.close()
data_lines.pop(0) # 删除第一条数据"""
将数据转换为字典,格式为
{1960:[[美国,123],[中国,456]],1961:[[xxx],[xxx]]}
"""
data_dict={} # 空字典
for x in data_lines:year=int(x.split(",")[0]) # 根据逗号切割,0号下标是年份,1号国家,2号GDPcountry=x.split(",")[1]GDP=float(x.split(",")[2]) # 使用float将科学计数法转化为数字try: # 如果当前年份的列表存在,进行追加data_dict[year].append([country,GDP])except KeyError: # KeyError表示当前数据不存在。年份不存在应创建新列表data_dict[year]=[]data_dict[year].append([country,GDP]) # 创建完列表再添加数据# 创建时间线,设置颜色主题
timeline=Timeline({"theme":ThemeType.LIGHT})# 将每一年的数据都构造为一个图表
# 字典是乱序的,需要取出年份并排序
sort_year_list = sorted(data_dict.keys()) # .key取出字典的键(年份),sorted默认从小到大排序
# 输出:[1960, 1961, 1962, ...]for year in sort_year_list:
# 最终图表只要前八,需要进行排序data_dict[year].sort(key=lambda x: x[1],reverse=True) # 对该年的数据,根据GDP由大到小排序year_data = data_dict[year][0:8] # 切片取前八x_data=[] # x轴数据的空列表,存放国家y_data=[] # y轴数据的空列表,存放GDPfor y in year_data:x_data.append(y[0]) # 下标0是国家y_data.append(y[1]/100000000) # 下标1是GDP,GDP以亿为单位# 构建柱状图bar=Bar()x_data.reverse() # x轴数据反转,原来最大的在最下面,反转后到最上面y_data.reverse() # 要保证x和y轴数据对应,y也要反转bar.add_xaxis(x_data)bar.add_yaxis("GDP(亿)",y_data,label_opts=LabelOpts(position="right")) # 以亿为单位,数据右侧显示bar.reversal_axis() # 反转xy轴# 设置每一年的图表标题bar.set_global_opts(title_opts=TitleOpts(title=f"{year}年全球前八GDP数据"))# 添加到时间线,add(bar对象,鼠标聚焦显示的内容(年份))timeline.add(bar,str(year))# 自动播放
timeline.add_schema(play_interval=500,is_timeline_show=True,is_auto_play=True,is_loop_play=False
)# 生成
timeline.render("1960-2019全球GDP前8国家.html")
效果图(文件大小有限,3.1倍速播放)
相关文章:

9-数据可视化-动态柱状图
文章目录1.基础柱状图2.基础时间线柱状图3.动态柱状图1.基础柱状图 from pyecharts.charts import Bar bar Bar() # 构建柱状图对象 bar.add_xaxis(["中国","美国","英国"]) bar.add_yaxis("GDP",[30,20,10]) bar.render()反转xy轴…...

Linux系统【centos7x】安装宝塔面板教程
1. 下载宝塔面板安装包 在宝塔官网下载最新版的安装包,下载完后上传到服务器。 2. 安装宝塔面板 在终端中输入以下命令: yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh…...
蓝易云:Linux系统【Centos7】top命令详细解释
top命令是一个非常常用的Linux系统性能监控工具,它可以实时动态地查看系统的各项性能指标,并且可以按照不同的排序方式进行排序,方便用户查找信息。 下面是top命令的详细解释: 1. 第一行:显示系统的运行时间、当前登…...

Muduo库源码剖析(一)——Channel
Muduo库源码剖析(一)——Channel 说明 本源码剖析是在muduo基础上,保留关键部分进行改写分析。 要点总结 事件分发器 event dispatcher中最重要的两个类型 channel 和 Poller Channel可理解为通道,poller往通道传输数据(事件发生情况)。 EventLoop…...
Java多线程:定时器Timer
前言 定时/计划功能在Java应用的各个领域都使用得非常多,比方说Web层面,可能一个项目要定时采集话单、定时更新某些缓存、定时清理一批不活跃用户等等。定时计划任务功能在Java中主要使用的就是Timer对象,它在内部使用多线程方式进行处理&am…...

设计模式---装饰模式
目录 介绍 实现 优缺点 装饰模式(Decorator Pattern)允许向一个现有的对象添加新的功能,同时又不改变其结构。这种类型的设计模式属于结构型模式,它是作为现有类的一个包装。这种模式创建了一个装饰类,用来包装原有…...

跨时钟域传输数据——单bit和多bit信号(总结)
文章目录前言一、慢时钟域到快时钟域1、单bit信号2、多bit信号二、快时钟域到慢时钟域1、单bit信号2、多bit信号三、多bit信号跨时钟域传输1、多个信号合并2、多周期路径 Multi-cycle Path/MCP3、使用格雷码4、使用异步FIFO5、使用DMUX电路结构6、握手信号传输四、简答题1、跨时…...
高并发下如何保证接口幂等
文章目录 1. insert前先select2. 加悲观锁3. 加乐观锁4. 加唯一索引5. 建防重表6. 根据状态机7. 加分布式锁8. 获取token接口幂等性问题,对于开发人员来说,是一个跟语言无关的公共问题。本文分享了一些解决这类问题非常实用的办法,绝大部分内容我在项目中实践过的,给有需要…...
Retrofit源码分析小结
Retrofit源码分析&小结 简介 Retrofit是对Okhttp网络请求的二次封装,通过注解动态代理的方式,简化了Okhttp的使用,使得通过简单的配置就可以像调用接口一样去请求网络接口;除此之外Retrofit还支持RxJava和kotlin的协程 基本…...
【从零开始学习 UVM】11.4、UVM Register Layer —— UVM Register Model 实战项目(RAL实战,交通灯为例)
文章目录 DesignInterfaceRegister Model ExampleRegister EnvironmentAPB Agent ExampleTestbench EnvironmentSequencesTest在之前的几篇文章中,我们已经了解了寄存器模型是什么以及如何使用它来访问给定设计中的寄存器。现在让我们看一个完整的例子,展示如何为给定设计编写…...
session和token的登录机制
做登录的时候遇到了token ,web和smtp的登录情况,这里 记录一下我所学习的两种登录方式,一种是token ,一种是session session 登录机制 当用户请求登录接口进行登录服务端 获得登录的信息,从而在数据库中查到相应的用…...

大厂研发成本大曝光,研发占大头
近日,腾讯发布《2022 年腾讯研发大数据报告》,披露了 2022 年腾讯在研发投入、研发效能、开源协同等方面的重要数据。 《报告》显示,2022 年腾讯内部研发人员占比达到 74%,这意味着,平均每四个腾讯员工中,…...
python爬虫第一节基础概念
爬虫是一种自动化抓取互联网上数据的技术。在网络信息爆炸的今天,爬虫技术已经成为数据获取和信息分析的重要手段。本文将详细介绍爬虫的基础知识和操作,帮助初学者快速入门。 一、爬虫的基本原理 爬虫的基本原理是通过网络请求获取网页源代码…...

web学习---Vue---笔记(1)
该笔记是记录尚硅谷的Vue学习视频的笔记,视频地址为:学习视频地址 初始Vue Vue组件化的特点 组件化声明式编码虚拟DOMDiff算法,尽量复用DOM节点 H5的组件,是把某一个模块封装,里面写HTML\CSS\JS等,算是一…...

【前端面试题——微信小程序】
目录1.请谈谈wxml与标准的html的异同?2.请谈谈WXSS和CSS的异同?3.请谈谈微信小程序主要目录和文件的作用?4.请谈谈小程序的双向绑定和vue的异同?5.简单描述下微信小程序的相关文件类型?6.微信小程序有哪些传值(传递数据…...

gpt模型训练-gpt3模型详解
训练一个GPT模型需要大量的数据集和计算资源。在这里,我提供一些较为通用的训练步骤以供参考: 获取数据集 首先需要收集一些数据集,数据集建议获取大型的常用文本数据集。常见的例如维基百科、各种在线文章、小说、论文等,数据集…...

vue尚品汇商城项目-day04【27.分页器静态组件(难点)】
文章目录27.分页器静态组件(难点)本人其他相关文章链接27.分页器静态组件(难点) 难点: 考虑点1:为啥需要分页呢? 答案:按需加载 考虑点2:分页器展示,需要哪…...

使用SeaFile搭建私有云盘并公网访问【cpolar内网穿透】
文章目录1. 前言2. SeaFile云盘设置2.1 Owncould的安装环境设置2.2 SeaFile下载安装2.3 SeaFile的配置3. cpolar内网穿透3.1 Cpolar下载安装3.2 Cpolar的注册3.3 Cpolar云端设置3.4 Cpolar本地设置4. 公网访问测试5. 结语1. 前言 现在我们身边的只能设备越来越多,各…...

蓝桥杯第26天(Python)考前挣扎
题型: 1.思维题/杂题:数学公式,分析题意,找规律 2.BFS/DFS:广搜(递归实现),深搜(deque实现) 3.简单数论:模,素数(只需要…...
WuThreat身份安全云-TVD每日漏洞情报-2023-04-04
漏洞名称:RSA NetWitness Platform 内存损坏漏洞 漏洞级别:中危 漏洞编号:CVE-2022-47529,CNNVD-202303-2419 相关涉及:RSA NetWitness Platform 12.2之前版本 漏洞状态:POC 参考链接:https://tvd.wuthreat.com/#/listDetail?TVD_IDTVD-2023-07193 漏洞名称:EyouCms <1.5.…...

国防科技大学计算机基础课程笔记02信息编码
1.机内码和国标码 国标码就是我们非常熟悉的这个GB2312,但是因为都是16进制,因此这个了16进制的数据既可以翻译成为这个机器码,也可以翻译成为这个国标码,所以这个时候很容易会出现这个歧义的情况; 因此,我们的这个国…...

深入浅出Asp.Net Core MVC应用开发系列-AspNetCore中的日志记录
ASP.NET Core 是一个跨平台的开源框架,用于在 Windows、macOS 或 Linux 上生成基于云的新式 Web 应用。 ASP.NET Core 中的日志记录 .NET 通过 ILogger API 支持高性能结构化日志记录,以帮助监视应用程序行为和诊断问题。 可以通过配置不同的记录提供程…...
Java 语言特性(面试系列1)
一、面向对象编程 1. 封装(Encapsulation) 定义:将数据(属性)和操作数据的方法绑定在一起,通过访问控制符(private、protected、public)隐藏内部实现细节。示例: public …...

《从零掌握MIPI CSI-2: 协议精解与FPGA摄像头开发实战》-- CSI-2 协议详细解析 (一)
CSI-2 协议详细解析 (一) 1. CSI-2层定义(CSI-2 Layer Definitions) 分层结构 :CSI-2协议分为6层: 物理层(PHY Layer) : 定义电气特性、时钟机制和传输介质(导线&#…...

高等数学(下)题型笔记(八)空间解析几何与向量代数
目录 0 前言 1 向量的点乘 1.1 基本公式 1.2 例题 2 向量的叉乘 2.1 基础知识 2.2 例题 3 空间平面方程 3.1 基础知识 3.2 例题 4 空间直线方程 4.1 基础知识 4.2 例题 5 旋转曲面及其方程 5.1 基础知识 5.2 例题 6 空间曲面的法线与切平面 6.1 基础知识 6.2…...

NFT模式:数字资产确权与链游经济系统构建
NFT模式:数字资产确权与链游经济系统构建 ——从技术架构到可持续生态的范式革命 一、确权技术革新:构建可信数字资产基石 1. 区块链底层架构的进化 跨链互操作协议:基于LayerZero协议实现以太坊、Solana等公链资产互通,通过零知…...
作为测试我们应该关注redis哪些方面
1、功能测试 数据结构操作:验证字符串、列表、哈希、集合和有序的基本操作是否正确 持久化:测试aof和aof持久化机制,确保数据在开启后正确恢复。 事务:检查事务的原子性和回滚机制。 发布订阅:确保消息正确传递。 2、性…...

Ubuntu系统多网卡多相机IP设置方法
目录 1、硬件情况 2、如何设置网卡和相机IP 2.1 万兆网卡连接交换机,交换机再连相机 2.1.1 网卡设置 2.1.2 相机设置 2.3 万兆网卡直连相机 1、硬件情况 2个网卡n个相机 电脑系统信息,系统版本:Ubuntu22.04.5 LTS;内核版本…...

【堆垛策略】设计方法
堆垛策略的设计是积木堆叠系统的核心,直接影响堆叠的稳定性、效率和容错能力。以下是分层次的堆垛策略设计方法,涵盖基础规则、优化算法和容错机制: 1. 基础堆垛规则 (1) 物理稳定性优先 重心原则: 大尺寸/重量积木在下…...

保姆级【快数学会Android端“动画“】+ 实现补间动画和逐帧动画!!!
目录 补间动画 1.创建资源文件夹 2.设置文件夹类型 3.创建.xml文件 4.样式设计 5.动画设置 6.动画的实现 内容拓展 7.在原基础上继续添加.xml文件 8.xml代码编写 (1)rotate_anim (2)scale_anim (3)translate_anim 9.MainActivity.java代码汇总 10.效果展示 逐帧…...