数据可视化:动态柱状图

终于来到最后一个数据可视化的文章拿啦~~~

在这里学习如何绘制动态柱状图

我先整个活

(๑′ᴗ‵๑)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~

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

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

相关文章

音乐免费下载mp3格式+音频格式转换+剪辑音频+合并音频教程

1.在qq音乐网页版搜索想要的歌曲 qq音乐网站:https://y.qq.com/ 如果你是vip可以直接下载vip的歌曲,如果不是选择不是vip的歌曲进行第一步的操作 2.点击播放进入页面后F12拿到音频地址 然后双击src里面的音频地址复制 网页新标签打开赋值的这个链接&a…

SpringBoot-WebSocket浏览器-服务器双向通信

文章目录 WebSocket 介绍入门案例 WebSocket 介绍 WebSocket 是基于 TCP 的一种新的网络协议。它实现了浏览器与服务器全双工通信——浏览器和服务器只需要完成一次握手,两者之间就可以创建持久性的连接,并进行双向数据传输。 应用场景: 视…

Markdown语法教程

Markdown:一种轻量级语言,有简洁的编写方式,能够提高大家的工作效率。 一、标题 1.1 标题 标题的编写格式以#号开始,分别表示h1 ~ h6,注意:# 后面有空格! # 一级标题 ## 二级标题 ### 三级标题…

vue2.0 打包,nginx部署

1、修改这里为空 否则报错:vue is undefined 2、修改为hash,重点:打包dist文件运行,必须这样 3、安装ngnix,重点:使用node的包:httpserve,失败 4、重点:配置代理转发 前端…

2024天津理工大学中环信息学院专升本机械设计制造自动化专业考纲

2024年天津理工大学中环信息学院高职升本科《机械设计制造及其自动化》专业课考试大纲《机械设计》《机械制图》 《机械设计》考试大纲 教 材:《机械设计》(第十版),高等教育出版社,濮良贵、陈国定、吴立言主编&#…

ElementUI-tree拖拽功能与节点自定义

前言 在管理端会遇到多分类时,要求有层次展示出来,并且每个分类有额外的操作。例如:添加分类、编辑分类、删除、拖到分类等。 下面将会记录这样的一个需求实习过程。 了解需求 分类展示按层级展示分类根据特定的参数展示可以操作的按钮&a…

四阶龙格库塔与元胞自动机

龙格库塔法参考: 【精选】四阶龙格库塔算法及matlab代码_四阶龙格库塔法matlab_漫道长歌行的博客-CSDN博客 龙格库塔算法 Runge Kutta Method及其Matlab代码_龙格库塔法matlab_Lzh_023016的博客-CSDN博客 元胞自动机参考: 元胞自动机:森林…

Leetcode Daily Challenge 1845. Seat Reservation Manager

1845. Seat Reservation Manager 题目要求:初始化一个SeatManager类包括默认构造函数和类函数,所有的seat初始化为true。reverse函数返回最小的true,然后把这个编号的椅子赋值为false。unreverse(seatNumber)函数把编号为seatNumber的椅子恢…

阿里云中的云服务器的ubuntu中的vim没有显示行号

没有行号: 在终端输入命令: vim ~/.vimrc set nu

【PC电脑windows环境下-[jetson-orin-NX]Linux环境下-下载工具esptool工具使用-相关细节-简单样例-实际操作】

【PC电脑windows环境下-[jetson-orin-NX]Linux环境下-下载工具esptool工具使用-相关细节-简单样例-实际操作】 1、概述2、实验环境3、 物品说明4-2、自我总结5、本次实验说明1、准备样例2、设置芯片3、编译4、下载5、验证 (1)windows环境下进行烧写1、下…

java泛型的深入 泛型还可以在很多地方进行定义 泛型类 泛型方法 泛型接口 泛型的继承和通配符 泛型类练习

文章目录 泛型的深入泛型还可以在很多地方进行定义泛型类泛型方法泛型接口 泛型的继承和通配符泛型类练习总结 泛型的深入 public static void main(String[] args) {//在没有泛型的时候怎么存储数据ArrayList listnew ArrayList();list.add(1);list.add("abc");//遍…

上海:竹云董事长董宁受邀在第三届“双区驱动,打造全球经济新引擎”国际合作论坛发言

作为中国最具活力的两大重要经济带,粤港澳和长三角两大湾区2022年GDP总量超过42万亿,占全国GDP总量的35%,对中国经济的重要性举足轻重。中国国际进口博览会是我国主动向世界开放市场的重大举措,是一个推动两地开放合作&#xff0c…

Ubuntu18.04安装pcl-1.12.1,make时报错:/usr/bin/ld: cannot find -lvtkIOMPIImage

解决方案: 在vtk安装包中,重新打开cmake-gui,然后勾选上VTK_Group_MPI和VTK_Group_Imaging。 cd VTK-8.2.0 cd build cmake-gui然后重新编译生成。 make -j8 # 或者j4,量力而行。 sudo make install 就可以解决了。 然后重新回到pcl安装…

V-REP和Python的联合仿真

机器人仿真软件 各类免费的的机器人仿真软件优缺点汇总_robot 仿真 软件收费么_dyannacon的博客-CSDN博客 课程地址 https://class.guyuehome.com/p/t_pc/course_pc_detail/column/p_605af87be4b007b4183a42e7 课程资料 guyueclass: 古月学院课程代码 旋转变换 旋转的左乘与…

论文阅读—— UniDetector(cvpr2023)

arxiv:https://arxiv.org/abs/2303.11749 github:https://github.com/zhenyuw16/UniDetector 一、介绍 通用目标检测旨在检测场景那种的一切目标。现有的检测器依赖于大量数据集 通用的目标检测器应该有两个能力:1、可以利用多种来…

数据库实验:SQL的数据视图

目录 视图概述视图的概念视图的作用 实验目的实验内容实验要求实验过程 视图概述 视图是由数据库中的一个表或多个表导出的虚拟表,其作用是方便用户对数据的操作 视图的概念 视图是一个虚拟表,其内容由查询定义。同真实的表一样,视图包含一…

SQL审计是什么意思?目的是什么?有什么好处?

很多刚入行的运维小伙伴对于SQL审计不是很了解,不知道其是什么意思?使用SQL审计的目的是什么?使用SQL审计的好处有哪些?这里我们大家就来一起聊聊,仅供参考哈! SQL审计是什么意思? 【回答】&…

CoCa论文笔记

摘要 计算机视觉任务中,探索大规模预训练基础模型具有重要意义,因为这些模型可以可以极快地迁移到下游任务中。本文提出的CoCa(Contrastive Captioner),一个极简设计,结合对比损失和captioning损失预训练一…

24PL-18-50-1836、12PN-4.1-50-1836比例电磁铁控制器

12PG-2.2-40-1836、24PG-8.8-40-1836、12PT-40-1836、24PT-40-1836、12PL-2.2-40-1836、24PL-8.8-40-1836、12PN-2.2-40-1836、24PN-8.8-40-1836、12PG-4.1-50-1836、24PG-18-50-1836、12PT-4.1-50-1836、24PT-18-50-1836、12PL-4.1-50-1836、24PL-18-50-1836、12PN-4.1-50-183…

以订单退款流程为例,聊聊如何优化策略模式

如果有人问你什么是策略模式?你可以尝试这样回答 策略模式是一种行为设计模式,它允许在运行时根据不同的情况选择不同的算法策略。这种模式将算法的定义与使用的代码分离开来,使得代码更加可读、可维护和可扩展。 在策略模式中,通…