构建地图
在浏览器里打开
但是地图没有颜色
设置全局选项,与设置折线图一样先去导包
就有了颜色
但是左边的范围不准可以手动的设定它的范围
这分别是三个范围对应了三种颜色
颜色有不同的代码(可以进入ab173网站,这里面有个叫前端的按钮,在选项卡里有一个叫RGB颜色对照表,这里有全部的)
全国疫情地图构建
初步地图数据,去准备构建地图,通过在上文中提到的map的对象先导包
在下文构建map的地图对象可以通过map.add去添加数据
当给render设置参数后可以控制我们生成文件的文件名
省级疫情地图
少一个数据手动添加
基础柱状图构建
通过Bar构建基础柱状图
柱状图可以完成x轴与y轴翻转
把这几个数据放到柱状图的右边
基础时间线柱状图
在代码中构建时间线可以通过叫做Timeline的功能,他的导包也来自charts这个模块,把他导入后可以构建时间线对象
注:绘图是用时间线对象绘图,而不是bar对象了
怎么可以自动播放
play_interval表示自动播放的时间间隔单位是毫秒,第二个是否显示时间线,第三个是否自动播放,第四个是否循环播放。
换颜色
对当前的时间线设置一个主题就行,通过代码在构建时间线的时候给它传入一个字典,这个字典里面有一个key(theme)叫做任务表示的是主题的意思 后面有一个叫任务type点light选择一个主题
在设置主题时:在构建时间线对象的时候在这个括号里面传入一个字典,这个字典有个key叫作主题它的value就是具体选择的主题,注一定在前面导包。当打出ThemeType可以直接去点一下你会发现它里面有很多内容找到喜欢的主题就行
GDP动态柱状图绘制
数据容器有一个叫sorted的函数,它可以对容器进行排序,但他没有办法指定排序规则。
列表。sort(key=选择排序依据的函数,reverse=True|False
key的这个函数的功能是他会把列表的元素传给这个函数然后由这个函数来决定拿到的元素里面的那一部分作为排序的依据然后给它返回出去就可以了
reverse表示是否对排序结果进行反转true表示降序排序false表示升序排序
先有一个列表,他是一个嵌套的列表里面又嵌套了一个内层列表如果对他进行排序,排序的依据是后面的数字,这时候sorted就不能用了,sort方法就它需要你给我传一个函数,这个函数的意思就是把每一个元素都给我传进来,然后由我这个函数来决定,我按照元素里面的哪一部分去排序,我们是按照数字排序那就是每个元素的下标1(这里是0,1,2.......这样排的),所以你会发现return元素的下标1,就告诉你按照每一个元素的下标1来进行排序也就是这个数字来进行排序,这样的话我们就指定好了。这里是将my_list里面的数依次代入element返回第二个数字然后比较数字的大小,再通过降序进行排列。
lambda匿名函数,通过lambda表示我接受一个参数,然后这个参数拿到之后用来决定我按照元素里面哪一部分进行排序,所以拿到这个元素我选择它的下标1,由于lambda自带return功能所以我们也不需要写return直接写element下标1就相当于把它返回出去了
完成这个图表
先进行数据相关处理
split(" , ")[ ]是对文件数据进行切片 ,
任何判断字典里面有没有指定的key(关键信息)结合前面学习的异常的捕获,如果你出现异常了表名[year]里面没有year,如果没有异常表明这里面已经有这个年份了,如果有这个年份数据说明这个list已经存在
下一步要做的就是调用append来继续追加,给他里面在嵌套一个数据在里面继续加国家和gdp。如果不存在,给year赋值构建一个空的列表在里面在追加一个新列表把国家gdp放进去。
下一步每一个时间点就是一个柱状图
我们通过for循环去循环我们的字典,每一年在循环里面都构建出来一个bar,但直接for循环顺序可能被打乱,先把我们字典里面的全部key都取出来,再给他排个序就行了,取出全部的key是不是通过字典对象data字典对象有一个叫做keys的方法,通过keys拿到全部的key然后用sorted函数把他排序一下
只要gdp前八的国家
把每一年的gdp都排一下序,调用一个sort的方法排序通过lambda决定排序的依据,而gdp在这个列表里面第二个元素,所以下标是1,因为是关键字传参所以要在lambda前加个key 要指定参数名。然后在设置降序。再取出来这一年的list现在是已经排好序了那我们通过序列的切片
建立柱状图
把x,y轴数据都找好了
注意:这时候要导包
构建柱状图对象 完成之后去设置对应的x,y轴
注要设置属性一定不要忘了导包 比如将标签放到右边
要反转x,y轴,下一步创建一个时间线对象要导包
在时间线上先导入bar,再将year转成字符串
下一步要自动播放
运行结果
将将x,y轴都翻转一下
要设置主题在构建时间线的时候修改它 还要导包(看上文)设置标题同理