python数据分析中数据可视化简单入门

1.折线图表

首先引入相关包pyecharts,如果没下载可以先下载

pip install pyecharts

from pyecharts.charts import Lineline = Line()
# 添加x轴
line.add_xaxis(['呱了个呱','羊村','牟多','蜂地','喵帕斯'])
# 添加y轴
line.add_yaxis("GDP",['50','30','40','34','63','22'])# 生成图表
line.render()

程序运行,在项目根目录生成了一个render.html文件,打开它,就能看到表格了

接下来再学习一些常用的全局设置参数

引入新的包

from pyecharts.options import TitleOpts,LegendOpts,ToolboxOpts,VisualMapOpts,LabelOpts

在line.render()生成表格之前配置全局配置才能生效

# 设置全局变量
line.set_global_opts(title_opts=TitleOpts(title="该图表为GDP展示",pos_left="center",pos_bottom="1%"), #设置标题,居中,并置于距离底部1%的位置legend_opts=LegendOpts(is_show=True),   #似乎是数据线条的分类toolbox_opts=ToolboxOpts(is_show=True),     #工具箱设置,True为打开visualmap_opts=VisualMapOpts(is_show=True)      #虚拟图例设置,True为打开
)

运行结果:

2.地图数据可视化

老规矩一样需要引入包

from pyecharts.charts import Map# 定义地图对象
map = Map()# 配置地图的数据(省市是否需要在不同版本的python下要求不一样,建议加上省市)
data = [("北京市",199),("上海市",344),("湖南省",1255),("台湾省",341),("广东省",5234),("海南省",242),("江苏省",3548),("福建省",5872),("湖北省",2345),]# 添加数据
map.add("测试地图",data,"china")map.render()

其中map.add()方法下,第一个参数是表格的名称,第二个参数是数据源,第三个则是使用哪国地图,默认是china(必须要求和数据源给的省市要对的上,例如如果你不写china,而改成其他国家是不会生成地图的,另外国家名也必须以小写字母开头,或者你还可以写成省,就会变成省单位的地图,当然,数据源也需要修改)

运行结果,地图可以放大,这样文字看起来就不会过于拥挤,下图为原始模样,可以看到,将鼠标置于湖南省上悬浮,可以看到对应的参数

当然这样的图表并不能很好地呈现数据,接下来对其进行一些全局配置,使其能够变成给人类能方便阅读的模样

老规矩引入包,将全局配置写在map.render()前才能生效

from pyecharts.options import TitleOpts,LegendOpts,ToolboxOpts,VisualMapOpts,LabelOpts
# 设置全局选项
map.set_global_opts(title_opts=TitleOpts(title="测试数据",is_show=True),visualmap_opts=VisualMapOpts(is_show=True,is_piecewise=True, #开启自定义校准数据样式pieces=[{"min":0,"max":300,"label":"0-100","color":"#CCFFFF"},{"min":301,"max":500,"label":"301-500","color":"#4EEE94"},{"min":501,"max":1000,"label":"501-1000","color":"#AFEEEE"},{"min":1001,"max":3000,"label":"1001-3000","color":"#FFD700"},{"min":3001,"max":10000,"label":"3001-10000","color":"#FF3030"},])
)

设置中设置了图表标题,图例设置为开启,并进一步对图例进行自定义设置(键值对)

“min”代表最小值,“max”代表最大值(当数据在这区间内,就会执行后面的效果,比如说定义的color)

“label”表示图例的标签,是给人看的,下图左下角那个就是label模块

“color”则表示处于这个数据区间的改用什么颜色来填充

运行结果,这样至少好看了点

3.柱状图

3.1常规柱状图

老规矩,导包

from pyecharts.charts import Bar

其他的跟折线图基本没大有差异

from pyecharts.charts import Bar# 创建表格对象
bar = Bar()# 定义x,y轴数据
bar.add_xaxis(['羊村','喵帕斯','牟多'])
bar.add_yaxis("GDP",[324,634,425])# 将x,y轴数据反转
bar.reversal_axis()# 创建表格
bar.render()

运行结果:

3.1基于时间线柱状图

导包

from pyecharts.charts import Bar,Timeline
from pyecharts.globals import ThemeType

额外引入了主题包,不需要的可以不用导入

跟基础柱状图差不多,就是生成了多张表,然后通过时间轴来播放

from pyecharts.charts import Bar,Timeline
from pyecharts.globals import ThemeType
from pyecharts.options import TitleOpts,LegendOpts,ToolboxOpts,VisualMapOpts,LabelOpts# 创建表格对象1
bar1 = Bar()
bar1.add_xaxis(['羊村','喵帕斯','牟多'])
bar1.add_yaxis("GDP",[324,634,425],label_opts=LabelOpts(position="right"))
bar1.reversal_axis()
# 创建表格对象2
bar2 = Bar()
bar2.add_xaxis(['羊村','喵帕斯','牟多'])
bar2.add_yaxis("GDP",[673,823,729],label_opts=LabelOpts(position="right"))
bar2.reversal_axis()
# 创建表格对象3
bar3 = Bar()
bar3.add_xaxis(['羊村','喵帕斯','牟多'])
bar3.add_yaxis("GDP",[958,1123,1735],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
)
# 通过时间线来制作表格,而不再是bar123对象
timeLine.render("时间线柱状图.html")

add_schema()方法参数的意思是:

play_interval=1000,     #自动播放时间间隔,单位毫秒
is_timeline_show=True,     #是否显示时间线
is_auto_play=True,        #是否自动播放
is_loop_play=True        #是否循环播放

主题参数:



练习——绘制1960年至2019年世界各国GDP前八名柱状动图

太难了,我自己都搞不懂,直接上代码吧,消化了再做解析

以下是csv部分数据

from pyecharts.charts import Bar,Timeline
from pyecharts.options import LabelOpts,global_options,TitleOpts
from pyecharts.globals import ThemeTypef = open("data/1960-2019全球GDP数据.csv",encoding="GB2312")
data_line = f.readlines()
# 删除csv文件中第一行无用内容
data_line.pop(0)# 定义字典对象
data_dict = {}
timeLine = Timeline({"theme":ThemeType.LIGHT})
#从下面开始降回比较难以理解
for line in data_line:year = int(line.split(",")[0])country = str(line.split(",")[1])gdp = float(line.split(",")[2])#判断字典中key是否是空的(因为一开始字典里是没有key的,如果强行获取key会报错)try:data_dict[year].append([country,gdp])except KeyError:data_dict[year] = []data_dict[year].append([country,gdp])# sorted_year_list = sorted(data_dict.keys())
# print(type(sorted_year_list))
# print(sorted_year_list)
# print(type(data_dict.keys()))
# print(data_dict.keys())
for year in data_dict.keys():data_dict[year].sort(key=lambda element: element[1],reverse=True)#取出本年度前八的国家year_data = data_dict[year][0:8]# 定义x,y轴空列表x_data = []y_data = []# 将数据存入xy轴列表中for country_gdp in year_data:x_data.append(country_gdp[0])y_data.append(country_gdp[1]/1000000000)    #单位是亿,所以除一下bar = Bar()# 数据进行反转,如果不翻转,GDP最大的会出现在底部而不是顶上第一条x_data.reverse()y_data.reverse()bar.add_xaxis(x_data)bar.add_yaxis("GDP(亿)",y_data,label_opts=LabelOpts(position="right"))   #原y轴数据以及单位说明,并设置数据放置在柱子右侧# 设置每年的标题bar.set_global_opts(title_opts=TitleOpts(title=f"第{year}年GDP排名前八情况",is_show=True,pos_left=True))# 将x,y轴进行反转,令GPD数值放到x轴,国家参数放到y轴去bar.reversal_axis()# 给时间轴添加节点名称,每个节点代表一个年份表格timeLine.add(bar,str(year))
# 柱状图自动播放设置
timeLine.add_schema(is_loop_play=True,is_timeline_show=True,is_auto_play=True,play_interval=500
)
timeLine.render("1960-2019年全球GDP前八柱状图.html")
f.close()

————————————————————————————————

以上内容源自黑马程序员python基础课程学习笔记,仅供学习与参考

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

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

相关文章

01 JVM --

JVM (Java Virtual Machine) 是一个虚拟机HotSpot 是 JVM 概念的一个实现。HotSpot 虚拟机通过即时编译 (JIT) 技术将 Java 字节码转换为本地机器码,以提高程序的执行效率。OpenJDK 是一个项目名,它在 HotSpot 的基础上开发了 HotSpot 的开源实现方法区是…

Redhat Linux忘记密码解决方案

1、重启系统 2、将光标移动到要启动的内核 3、按e编辑当前条目 4、将光标移动以Linux开头的行,此为内核命令行 5、在末尾添加人的rd.break 6、按ctrlx继续启动,如果发现输入的rd.break不能进入到伪系统,那么改为 rd.break consoletty0 (按ctr…

设计模式-03 设计模式-工厂模式factory-内部工厂

设计模式-03 设计模式-工厂模式factory-内部工厂 目录 设计模式-03 设计模式-工厂模式factory-内部工厂 1.定义 2.内涵 3.案例对比 4.特点 4.总结 1.定义 内部工厂模式是一种创建类对象的方式,其中工厂方法被封装在类内部,客户端只能通过类的公共…

epoll的LT和ET模式介绍

目录 1.epoll的LT和ET模式介绍 2.epoll的ET模式如何处理 2.1 epoll的ET模式编程读取数据的处理方式 2.2 将描述符设置为非阻塞模式的方法 3.ET模式的总结 4.epoll的LT模式和ET模式总结 5.IO复用总结 1.epoll的LT和ET模式介绍 epoll对文件描述符有两种操作模式: LT(Leve…

Linux(openEuler、CentOS8)常用的IP修改方式(文本配置工具nmtui+配置文件+nmcli命令)

----本实验环境为openEuler系统<以server方式安装>&#xff08;CentOS类似&#xff0c;可参考本文&#xff09;---- 一、知识点 &#xff08;一&#xff09;文本配置工具nmtui(openEuler已预装) nmtui&#xff08;NetworkManager Text User Interface&#xff09;是一…

关于apache+php用户验证

一.直接在apache配置配置用户信息 1.apache配置可以参考外部文档 https://developer.aliyun.com/article/507049 2.上面配置好在php获取用户信息&#xff08;登录apache会拦截&#xff09; $userName $_SERVER[PHP_AUTH_USER];$password $_SERVER[PHP_AUTH_PW]; 二.上面直…

在线OJ——链表经典例题详解

引言&#xff1a;本篇博客详细讲解了关于链表的三个经典例题&#xff0c;分别是&#xff1a;环形链表&#xff08;简单&#xff09;&#xff0c;环形链表Ⅱ&#xff08;中等&#xff09;&#xff0c;随机链表的复制&#xff08;中等&#xff09;。当你能毫无压力地听懂和成功地…

再学Java基础——final关键字

在Java中&#xff0c;final关键字是一个修饰符&#xff0c;它可以应用于类、方法、变量和常量。以下是final关键字在Java中的不同用途及其作用&#xff1a; final类&#xff1a; 当一个类被声明为final时&#xff0c;它不能被继承。这意味着没有其他类可以扩展这个类。作用&…

【莫比乌斯变换-02】关于莫比乌斯变换属性梳理

文章目录 一、说明二、多视角看莫比乌斯变换2.1 从几何角度2.2 复分析中的莫比乌斯变换2.3 莫比乌斯变换运算组合2.4 莫比乌斯变换的不动点2.5 三个点决定一个莫比乌斯变换2.6 交叉比2.7 莫比乌斯变换的逆变换 三 莫比乌斯变换性质证明3.1 证明1&#xff1a;莫比乌斯变换将圆变…

【莫比乌斯变换-03】python实现圆对圆的变换

文章目录 一、说明二、python实现复平面的莫比乌斯变换三、线的变换四、画笑脸 一、说明 我们在前面的文章中&#xff0c;叙述了莫比乌斯变换的复数分析&#xff0c;以及种种几何属性&#xff0c;本篇中叙述如何程序地实现&#xff1a;复平面上的圆在莫比乌斯变换下的图像是另…

基于高德 API 的自动获取气候数据的 Python 脚本

文章目录 高德申请 Key脚本介绍运行结果示例 源代码&#xff1a; https://github.com/ma0513207162/PyPrecip。pyprecip\reading\read_api.py 路径下。 项目介绍&#xff1a;PyPrecip 是一个专注于气候数据处理的 Python 库&#xff0c;旨在为用户提供方便、高效的气候数据处理…

linux基本操作

vim的基本操作 正常模式&#xff1a;启动vim后默认处于正常模式。不论位于什么模式&#xff0c;按下Esc建都会进入正常模式。 插入模式&#xff1a;在正常模式中按下i&#xff0c;l&#xff0c;a&#xff0c;A等键&#xff0c;会进入插入模式。现在只用记住按i键会进行插入模…

文本内容如何扫码展示?文本转二维码常用技巧

随着网络的不断发展&#xff0c;现在很多人会通过二维码的方式来作为内容的载体&#xff0c;用来给其他人提供需要的信息或者其他内容。其中&#xff0c;将文本制作二维码就是很常用的一种方式&#xff0c;通过扫码展示文字内容&#xff0c;比如信件、物品信息、联系方式等类型…

python学习笔记----函数进阶(七)

一、函数多个返回值 def test_return():x 1y "hello"z Truereturn x, y, za, b, c test_return()print(a) print(b) print(c)二、函数多种传参方式 2.1 函数参数种类 根据使用方式上的不同&#xff0c;函数有4种常见参数的使用方式&#xff1a; 位置参数关键…

EPAI手绘建模APP资源管理和模型编辑器2

g) 矩形 图 26模型编辑器-矩形 i. 修改矩形的中心位置。 ii. 修改矩形的长度和宽度。 h) 正多边形 图 27模型编辑器-内接正多边形 图 28模型编辑器-外切正多边形 i. 修改正多边形的中心位置。 ii. 修改正多边形中心距离端点的长度。 iii. 修改正多边形的阶数。阶数为3&…

Linux Multipath极简安装配置

1.安装软件 #yum install -y device-mapper* 2.开启并设置开机启动 #systemctl start multipathd && systemctl enable multipathd 3.连接存储 在存储上对主机进行卷映射 4.修改配置文件 注&#xff1a;此配置文件可能存在&#xff0c;也可能不存在&#xff0c…

禅道项目管理系统身份认证绕过漏洞复现(QVD-2024-15263)

0x01 产品简介 禅道项目管理软件是国产的开源项目管理软件,专注研发项目管理,内置需求管理、任务管理、bug管理、缺陷管理、用例管理、计划发布等功能,完整覆盖了研发项目管理的核心流程。 0x02 漏洞概述 2024年4月,互联网披露禅道系统存在身份认证绕过的漏洞情报。经分…

【Unity 协程】

Unity中的协程&#xff08;Coroutine&#xff09;是一种编程结构&#xff0c;它允许你以一种看似同步的方式编写可能需要异步执行的代码。协程特别适用于需要在一定时间后执行操作&#xff0c;或者在循环执行某段代码直到某个条件满足时的场景。 协程使用IEnumerator委托来实现…

Qt中的对象树

一. QT对象树的概念 QObject 的构造函数中会传入一个 Parent 父对象指针&#xff0c;children() 函数返回 QObjectList。即每一个 QObject 对象有且仅有一个父对象&#xff0c;但可以有很多个子对象。 那么Qt这样设计的好处是什么呢&#xff1f;很简单&#xff0c;就是为了方…

基于HAL库的stm32中定时器的使用--定时器中断每隔一秒进行led灯的闪烁以及定时器生成PWM

一&#xff1a;什么是定时器 &#xff08;1&#xff09;stm32定时器&#xff0c;是存在于stm32单片机中的一个外设。stm32共有八个定时器&#xff0c;两个高级定时器&#xff08;TIM1、TIM8&#xff09;&#xff0c;四个通用定时器&#xff08;TIM2、TIM3、TIM4、TIM5&#xff…