python数据处理与可视化,Python可视化数据分析
(1)制作世界人口地图:json格式下载JSON格式人口数据,使用JSON模块进行处理。Pygal提供了一个适合初学者的地图创建工具,用它来可视化人口数据,探索全球人口的分布。
1.下载世界人口数据地址:https://ehmatthes.github.io/pcc/
2.安装模块:pip安装pygal_maps_world
3.将population_data.json拖到项目中并打开文件。
[{countryname: Arabworld , countrycode: ARB , year: 1960 , value: 96388069}-snip-](二)处理JSON文本的具体步骤1获取国家world_population.py数据,创建世界_
导入json#1。将数据加载到列表filename= population _ data.json 中,open (filename)为f: pop _ data=json.load (f) # 2。为pop _ data中的pop _ dict打印每个国家2010年的人口:if pop _ dict[ year ]= 2010 :country _ name=pop _ dict[ country name ]population=int(float(pop _ dict[ Value ])print(country _ name : str(population))结果:阿拉伯世界:357868000加勒比海小国:688000东亚太平洋(所有收入水平):2201536674-snip在处理地缘政治数据时,通常需要标准化国家代码集。Population_data.json包含三个字母的国家代码,但是Pygal使用两个字母的国家代码。我们需要找到一种方法,根据国家名称获得两个字母的国家代码。只需安装pip安装pygal_maps_world!
#1.安装模块:pip install pygal _ maps _ world from pygal _ maps _ world . i18n导入country _ code in sorted(COUNTRIES . keys()):print(country _ code,COUNTRIES[country_code])结果演示:Ad安道尔AE阿联酋AF阿富汗-SNIP-ZA南非ZM赞比亚ZW津巴布韦3 .为了获取国家代码,我们编写了一个函数来获取并创建country_codes.py
from Pygal _ maps _ world . i18n import countries def get _ country _ code(country _ Name):#根据指定的国家,返回pygal使用的代码的两个字母的国家代码,Name countries . items():If Name==country _ Name:返回代码#如果找不到指定的国家,就返回none print (get _ country _ code(安道尔))print (get _ country _ code(阿联酋)print (get _ country _ code(阿富汗))结果演示:adaeaf 4 .制作世界地图,创建美洲. py
有了国家代码,制作世界地图就很简单了。Pygal提供了一个图表类型的世界地图来帮助你制作一个世界地图,展示各个国家的数据。
# Map the world import pygal WM=pygal . maps . world . world()WM . title=北美中部和南美 wm.add(北美,[ca , mx , us])wm.add(中部,[BZ , Cr ,)Pa , sv])wm.add(南美,[AR , Bo , BR , CL , CO , EC , GF , Gy , PE , Py , SR ,
5.在世界地图上显示数字数据(显示三个北美国家的人口)并创建na_population.py
#显示2010年北美总人口。import pygal WM=pygal . maps . world . world()WM . title= 2010年北美总人口 wm.add(北美,{CA: 34126000,美国:309349000, MX: 10
6.画一张完整的世界人口地图。
要呈现其他国家的人口,需要将之前处理的数据转换成Pygal要求的字典格式。关键是两个字母的国家代码,值是人口。
导入JSON导入pygal from Country _ code导入get _ Country _ code filename= population _ data。 JSON 与open(filename)as file:pop _ data=JSON。load(file)cc _ populations={ } for pop _ dict in pop _ data:if pop _ dict[ Year ]= 2010 :Country _ Name=pop _ dict[ Country Name ]population=int(float(pop _ dict[ Value ])# print(Country _ Name): str(population))code=get _ Country年各国人口总数添加( 2010 ,cc _ populations)WM。渲染到文件(世界人口。SVG’)结果演示:
7.根据人口数量将国家分组
中国和印度的人口比其他国家多的多,但在当前地图中,它们的颜色和其他国家差别较小,中国和印度人口都超过了10亿,接下来人口最多的国家是美国大约3亿。下面将所有的国家作为一个编组,根据人口数量分为三组——少于1000万的、介于1000万和10亿的以及10亿以上的。
导入JSON导入pygal from Country _ code导入get _ Country _ code filename= population _ data。 JSON 与open(filename)as file:pop _ data=JSON。load(file)cc _ populations={ } for pop _ dict in pop _ data:if pop _ dict[ Year ]= 2010 :Country _ Name=pop _ dict[ Country Name ]population=int(float(pop _ dict[ Value ])# print(Country _ Name): str(population))code=get _ Country根据人口数量将所有国家分为三组cc_pops_1,cc_pops_2,cc_pops_3={},{},{}for cc,pop in cc _ populations。items():if pop 10000000:cc _ pops _ 1[cc]=pop if pop 100000000:cc _ pops _ 2[cc]=pop else:cc _ pops _ 3[cc]=pop # 2 .打印每个分组包含多少个国家print(len(cc_pops_1),len(cc_pops_2),len(cc _ pops _ 3))WM=pygal。地图。世界。world()WM。title= 2010年各国人口总数wm.add(0-1000万,cc_pops_1)wm.add(1000万-10亿,cc_pops_2)wm.add(大于10亿,cc _ pops _ 3)WM。渲染到文件(世界人口。SVG’)结果演示:
8.使用臀的设置世界地图的样式
在这个地图中,根据人口将国家分组虽然很有效,但默认的颜色设置非常难看。例如,在这里臀的选择鲜艳的粉色和绿色基色,下面使用臀的样式设置指令调整颜色。
导入数据导入pygal 1号.导入设置颜色的模块来自派加尔。样式导入rotatestyle from Country _ code导入get _ Country _ code filename= population _ data。 JSON 与open(filename)as file:pop _ data=JSON。load(file)cc _ populations={ } for pop _ dict in pop _ data:if pop _ dict[ Year ]= 2010 :Country _ Name=pop _ dict[ Country Name ]population=int(float(pop _ dict[ Value ])# print(Country _ Name): str(population))code=get根据人口数量将所有国家分为三组cc_pops_1,cc_pops_2,cc_pops_3={},{},{}for cc,pop in cc _ populations。items():if pop 10000000:cc _ pops _ 1[cc]=pop if pop 100000000:cc _ pops _ 2[cc]=pop else:cc _ pops _ 3[cc]=pop # 3 .打印每个分组包含多少个国家print(len(cc_pops_1),len(cc_pops_2),len(cc_pops_3))#4 .设置颜色参数WM _ style=RotateStyle( # 336699 )WM=pygal。地图。世界。world(style=WM _ style)WM。title= 2010年各国人口总数wm.add(0-1000万,cc_pops_1)wm.add(1000万-10亿,cc_pops_2)wm.add(大于10亿,cc _ pops _ 3)WM。渲染到文件(世界人口。SVG’)结果演示:
9.加亮颜色主题
臀的默认使用较暗颜色主题,为了渲染效果,我们使用浅色样式加亮地图的颜色。这个类修改整个图表,包括背景色、标签及各个国家的颜色。
导入数据导入pygal 1号.导入设置主题的模块的类来自派加尔。style import light colorized style from Country _ code import get _ Country _ code filename= population _ data。“JSON ”, open(filename)为file:pop _ data。load(file)cc _ populations={ } for pop _ dict in pop _ data:if pop _ dict[ Year ]= 2010 :Country _ Name=pop _ dict[ Country Name ]population=int(float(pop _ dict[ Value ])# print(Country _ Name): str(population))code=根据人口数量将所有国家分为三组cc_pops_1,cc_pops_2,cc_pops_3={},{},{}for cc,pop in cc _ populations。items():if pop 10000000:cc _ pops _ 1[cc]=pop if pop 100000000:cc _ pops _ 2[cc]=pop else:cc _ pops _ 3[cc]=pop # 3 .打印每个分组包含多少个国家print(len(cc_pops_1),len(cc_pops_2),len(cc_pops_3))#4 .设置主题样式WM _ style=LightColorizedStylewm=pygal。地图。世界。world(style=WM _ style)WM。title= 2010年各国人口总数wm.add(0-1000万,cc_pops_1)wm.add(1000万-10亿,cc_pops_2)wm.add(大于10亿,cc _ pops _ 3)WM。渲染到文件(世界人口。SVG’)结果演示:
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。