数据可视化:动态柱状图
终于来到最后一个数据可视化的文章拿啦~~~
在这里学习如何绘制动态柱状图
我先整个活
(๑′ᴗ‵๑)I Lᵒᵛᵉᵧₒᵤ❤
什么是pyecharts?
答:
Python的Pyecharts软件包。它是一个用于Python数据可视化和图表绘制的库,可用于制作各种图表和可视化结果,包括柱状图、折线图、饼图、散点图、地图等。Pyecharts使用JavaScript的ECharts库进行底层绘制,因此它提供了易于使用的Python界面和大量的示例代码。同时,Pyecharts还支持在Jupyter notebook中的实时交互和动态展示,使其非常适合于数据分析和数据可视化。
1.案例效果

2.创建基础柱状图
(1)通过Bar对象构建柱状图
(2)反转X,Y轴

(3)将数据置于右侧

(4)整体代码示例
"""构建基础柱状图
"""
from pyecharts.charts import Bar
from pyecharts.options import LabelOpts# 使用Bar构建基础柱状图
bar = Bar()
# 添加X轴
bar.add_xaxis(["中国", "美国", "英国"])
# 添加Y轴
# 设置数值标签在右侧
bar.add_yaxis("GDP",[30, 20, 10],label_opts=LabelOpts(position="right"))
# 反转x轴和y轴
bar.reversal_axis()# 绘图
bar.render("普通柱状图.html")
3.创建基础时间柱状图
(1)创建时间线

(2)设置自动播放

(3)设置时间线的主题

(4)整体代码
"""基础时间柱状图
"""
from pyecharts.charts import Bar, Timeline
from pyecharts.options import LabelOpts
from pyecharts.globals import ThemeTypebar1 = 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, 50, 100],label_opts=LabelOpts(position="right"))
bar2.reversal_axis()bar3 = Bar()
bar3.add_xaxis(['中国', '美国', '英国'])
bar3.add_yaxis("GDP",[1000, 600, 300],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=1000,# 是否显示时间线is_timeline_show=True,# 是否自动播放is_auto_play=True,# 是否循环自动播放is_loop_play=True
)# 有了时间线之后绘图需要使用时间线对象绘图
timeline.render("基础时间线柱状图.html")
4.GDP动态柱状图的绘制
(1)补充知识:列表的sort方法
sort()是Python中用于排序列表的内置函数。使用sort()方法可以对列表进行升序排列或降序排列。
sort()函数有两种用法:
1. 对列表进行升序排列:
my_list = [2, 5, 1, 9, 4]my_list.sort()print(my_list) # 输出 [1, 2, 4, 5, 9]
2. 对列表进行降序排列:
my_list = [2, 5, 1, 9, 4]my_list.sort(reverse=True)print(my_list) # 输出 [9, 5, 4, 2, 1]
3.sorted
另外,之前学习过sorted()函数对列表进行排序,不同的是,sorted()函数不会修改原始列表,而是返回一个新的已排序的列表。
例如:
my_list = [2, 5, 1, 9, 4]
sorted_list = sorted(my_list)
print(my_list) # 输出 [2, 5, 1, 9, 4]
print(sorted_list) # 输出 [1, 2, 4, 5, 9]
注:sort()和sorted()函数都是在原始列表的基础上进行排序,因此会对原始列表做出修改或返回一个新的已排序的列表。如果不想对原始列表进行修改,可以先对原始列表进行复制再进行排序。
4.使用方法

(2)数据处理
1.需求分析

2.处理数据

"""GDP动态柱状图绘制
"""
from pyecharts.charts import Bar, Timeline
from pyecharts.options import *
from pyecharts.globals import ThemeType# 读取数据
f = open("D:\\IOText\\DataDoing\\1960-2019全球GDP数据.csv", "r", encoding="GB2312")
data_lines = f.readlines()
# 关闭文件
f.close()
# 删除第一条数据
data_lines.pop(0)
# 将数据转化为字典存储,格式
# 年份: [[国家,gdp],[国家,gdp]]
# 定义字典对象存储
data_dict = {}
for line in data_lines:year = int(line.split(",")[0])country = line.split(",")[1]GDP = float(line.split(",")[2])# 判断年份try:data_dict[year].append([country, GDP])except KeyError:data_dict[year] = []data_dict[year].append([country, GDP])# 创建时间线对象
timeline = Timeline({"theme": ThemeType.LIGHT}
)# 排序年份,由小到大
sorted_year_list = sorted(data_dict.keys())
for year in sorted_year_list:# 由高到低排序data_dict[year].sort(key=lambda element: element[1], reverse=True)# 取GDP前八的year_data_before8 = data_dict[year][0:8]x_data = []y_data = []for country_GDP in year_data_before8:# x轴添加国家x_data.append(country_GDP[0])# y轴添加GDPy_data.append(country_GDP[1] / 100000000)bar = Bar()x_data.reverse()y_data.reverse()bar.add_xaxis(x_data)bar.add_yaxis("GDP(亿元)", y_data, label_opts=LabelOpts(position="right"))# 翻转xy轴bar.reversal_axis()# 设置每一年的图标的标题bar.set_global_opts(title_opts=TitleOpts(title=f"{year}年全球前八GDP"))# 加入时间线timeline.add(bar, str(year))# 设置
timeline.add_schema(play_interval=1000,is_timeline_show=True,is_auto_play=True,is_loop_play=True
)# 创建图
timeline.render("1960~2019年全球GDP前八国家.html")
结语
对于刚刚接触编程的同学来说,这个问题肯定是很难得,但是多练习练习就好了,ヾ(◍°∇°◍)ノ゙
拜拜ヾ( ̄▽ ̄)Bye~Bye~
相关文章:
数据可视化:动态柱状图
终于来到最后一个数据可视化的文章拿啦~~~ 在这里学习如何绘制动态柱状图 我先整个活 (๑′ᴗ‵๑)I Lᵒᵛᵉᵧₒᵤ❤ 什么是pyecharts? 答: Python的Pyecharts软件包。它是一个用于Python数据可视化和图表绘制的库,可用于制作…...
vue3 自定义loading
使用antdv 后发现只有button支持loaidng属性,而其他元素不能使用loading来显示是否加载中,需要套一层 a-spin 才能支持,非常不方便。 所以写了个自定义的指令来进行处理 新建loading.vue文件用来页面显示 <template><div class&q…...
Ceph-deploy跳过gpg-key验证(离线环境安装Ceph)
问题 CentOS-7.6.1810离线环境搭建Ceph环境时出现gpg-key安装源公钥检查错误。原因是执行ceph-deploy install 命令的服务器无法访问互联网。具体报错如下图: 解决 安装命令后新增--no-adjust-repos参数即可跳过安装 GPG 密钥。 命令如下: ceph-deplo…...
想入行单片机开发的学生们的忠告
想入行单片机开发的学生们的忠告 做嵌入式单片机开发十来年。想给那些想入行单片机开发的同学一些建议。 1.想做这行,做好坚持学习的准备。最近很多小伙伴找我,说想要一些单片机的资料,然后我根据自己从业十年经验,熬夜搞了几个通…...
【番外篇】C++语法学习笔记
学习目标:C的一些高级操作 根据C菜鸟教程自学的笔记,大家有想学习C的话可以根据这个网站进行学习。这个推荐有一定基础的再去进行自学。新手的话还是建议直接看一些视频跟着学 学习内容: 1. 运算符重载 说到C中的运算符重载,首…...
js 字符串转数字
在 JavaScript 中,可以使用以下方法将字符串转换为数字: parseInt parseInt():将字符串转换为整数。它会从字符串的开头开始解析,直到遇到非数字字符为止。如果第一个字符不能转换为数字,则返回 NaN。 let str &qu…...
【NI-DAQmx入门】外部采样时钟相关
1.时钟的作用 时钟在几乎所有测量系统中都起着至关重要的作用。通过硬件定时测量,时钟控制采样或更新的发生时间。与依赖软件计时测量相比,您可以选择硬件定时测量来实现采样或更新之间更一致的时间间隔。以数模转换器特性分析为例。该应用由三个基本部分…...
Amazon EC2 Hpc7g 实例现已在更多区域推出
即日起,Amazon Elastic Compute Cloud (Amazon EC2) Hpc7g 实例将在亚太地区(东京)、欧洲地区(爱尔兰)和 Amazon GovCloud(美国西部)区域推出。Amazon EC2 Hpc7g 实例由 Amazon Graviton 处理器…...
【开题报告】基于SpringBoot的药店药品管理系统的设计与实现
1.研究背景 随着人们对健康的日益关注和医疗技术的不断进步,药店在人们生活中的重要性越来越凸显。药店承担着提供药品和健康咨询等服务的角色,而药品管理是药店运营的核心内容之一。传统的药店药品管理往往依赖人工操作,存在着信息不透明、…...
Promise用法详解
文章目录 一、异步代码的困境1.异步任务的处理 二、认识Promise作用1.什么是Promise呢?2.Promise的代码结构 三、Promise状态变化1.Executor2.resolve不同值的区别3.then方法 – 接受两个参数4.then方法 – 多次调用5.then方法 – 返回值6.catch方法 – 多次调用7.c…...
7.spark sql编程
概述 spark 版本为 3.2.4,注意 RDD 转 DataFrame 的代码出现的问题及解决方案 本文目标如下: RDD ,Datasets,DataFrames 之间的区别入门 SparkSession创建 DataFramesDataFrame 操作编程方式运行 sql 查询创建 DatasetsDataFrames 与 RDDs 互相转换 使用…...
【2023】COMAP美赛数模中的大型语言模型LLM和生成式人工智能工具的使用
COMAP比赛中的大型语言模型和生成式人工智能工具的使用 写在最前面GitHub Copilot工具 说明局限性 团队指南引文和引用说明人工智能使用报告 英文原版 Use of Large Language Models and Generative AI Tools in COMAP ContestslimitationsGuidance for teamsCitation and Refe…...
数据结构-顺序表学习资料
什么是顺序表? 顺序表是一种线性数据结构,它按照元素在内存中的物理顺序存储数据。顺序表可以通过数组实现,也可以通过链表和动态数组实现。 顺序表的特点 元素连续存储:顺序表中的元素在内存中是连续存储的,这样可…...
微信小程序获取剪切板的内容到输入框中
xml代码 <navigation-bar title"Weixin" back"{{false}}" color"black" background"#FFF"></navigation-bar> <view><input placeholder"请输入内容" name"content" type"text" …...
【年底不想背锅!网络工程师必收藏的排障命令大全】
网络故障排除工具是每个网络工程师的必需品。 为了提升我们的工作效率, 不浪费时间,工具的重要性显而易见 特别是每当添加新的设备或网络发生变更时,新的问题就会出现,而且很难快速确定问题出在哪里。每一位网络工程师或从事网…...
Windows服务器用PowerShell script判断服务器启动时间并做reboot动作
脚本如下,Windows 2019环境 60*119 是119分钟 $x(Get-Date) - (gcim Win32_OperatingSystem).LastBootUpTime echo $x.TotalSeconds " seconds passed" if($x.TotalSeconds -gt 60*119) {Invoke-Expression -Command "msg.exe * /TIME:20 reboot i…...
【HTML】播放器如何自动播放【已解决】
自动播放器策略 先了解浏览器的自动播放器策略 始终允许静音自动播放在以下情况,带声音的自动播放才会被允许 2.1 用户已经与当前域进行交互 2.2 在桌面上,用户的媒体参与指数阈值(MEI)已被越过,这意味着用户以前播放带有声音的视频。 2.3 …...
Go Gin中间件
Gin是一个用Go语言编写的Web框架,它提供了一种简单的方式来创建HTTP路由和处理HTTP请求。中间件是Gin框架中的一个重要概念,它可以用来处理HTTP请求和响应,或者在处理请求之前和之后执行一些操作。 以下是关于Gin中间件开发的一些基本信息&am…...
财务数字化转型的切入点是什么?_光点科技
随着科技的不断进步,数字化转型已经成为各个行业追求的目标,财务领域也不例外。那么,财务数字化转型的切入点在哪里呢?如何确保转型的成功进行? 数据整合与管理 财务数据的准确性与及时性是财务管理的基石。数字化转型…...
Langchain知识点(上)
输出格式 Pydantic (JSON) 解析器 # 创建模型实例 from langchain import OpenAI model OpenAI(model_nametext-davinci-003)# ------Part 2 # 创建一个空的DataFrame用于存储结果 import pandas as pd df pd.DataFrame(columns["flower_type", "price"…...
(二)TensorRT-LLM | 模型导出(v0.20.0rc3)
0. 概述 上一节 对安装和使用有个基本介绍。根据这个 issue 的描述,后续 TensorRT-LLM 团队可能更专注于更新和维护 pytorch backend。但 tensorrt backend 作为先前一直开发的工作,其中包含了大量可以学习的地方。本文主要看看它导出模型的部分&#x…...
【服务器压力测试】本地PC电脑作为服务器运行时出现卡顿和资源紧张(Windows/Linux)
要让本地PC电脑作为服务器运行时出现卡顿和资源紧张的情况,可以通过以下几种方式模拟或触发: 1. 增加CPU负载 运行大量计算密集型任务,例如: 使用多线程循环执行复杂计算(如数学运算、加密解密等)。运行图…...
项目部署到Linux上时遇到的错误(Redis,MySQL,无法正确连接,地址占用问题)
Redis无法正确连接 在运行jar包时出现了这样的错误 查询得知问题核心在于Redis连接失败,具体原因是客户端发送了密码认证请求,但Redis服务器未设置密码 1.为Redis设置密码(匹配客户端配置) 步骤: 1).修…...
AI,如何重构理解、匹配与决策?
AI 时代,我们如何理解消费? 作者|王彬 封面|Unplash 人们通过信息理解世界。 曾几何时,PC 与移动互联网重塑了人们的购物路径:信息变得唾手可得,商品决策变得高度依赖内容。 但 AI 时代的来…...
Kafka入门-生产者
生产者 生产者发送流程: 延迟时间为0ms时,也就意味着每当有数据就会直接发送 异步发送API 异步发送和同步发送的不同在于:异步发送不需要等待结果,同步发送必须等待结果才能进行下一步发送。 普通异步发送 首先导入所需的k…...
MFC 抛体运动模拟:常见问题解决与界面美化
在 MFC 中开发抛体运动模拟程序时,我们常遇到 轨迹残留、无效刷新、视觉单调、物理逻辑瑕疵 等问题。本文将针对这些痛点,详细解析原因并提供解决方案,同时兼顾界面美化,让模拟效果更专业、更高效。 问题一:历史轨迹与小球残影残留 现象 小球运动后,历史位置的 “残影”…...
Web中间件--tomcat学习
Web中间件–tomcat Java虚拟机详解 什么是JAVA虚拟机 Java虚拟机是一个抽象的计算机,它可以执行Java字节码。Java虚拟机是Java平台的一部分,Java平台由Java语言、Java API和Java虚拟机组成。Java虚拟机的主要作用是将Java字节码转换为机器代码&#x…...
宇树科技,改名了!
提到国内具身智能和机器人领域的代表企业,那宇树科技(Unitree)必须名列其榜。 最近,宇树科技的一项新变动消息在业界引发了不少关注和讨论,即: 宇树向其合作伙伴发布了一封公司名称变更函称,因…...
[论文阅读]TrustRAG: Enhancing Robustness and Trustworthiness in RAG
TrustRAG: Enhancing Robustness and Trustworthiness in RAG [2501.00879] TrustRAG: Enhancing Robustness and Trustworthiness in Retrieval-Augmented Generation 代码:HuichiZhou/TrustRAG: Code for "TrustRAG: Enhancing Robustness and Trustworthin…...
Matlab实现任意伪彩色图像可视化显示
Matlab实现任意伪彩色图像可视化显示 1、灰度原始图像2、RGB彩色原始图像 在科研研究中,如何展示好看的实验结果图像非常重要!!! 1、灰度原始图像 灰度图像每个像素点只有一个数值,代表该点的亮度(或…...
