1.世界人口地图介绍

本程序将从一个人口数据集中提取出每个国家2010年的人口数量,然后利用Pygal中的地图制作工具,将其展示在地图上。

本程序将使用population_data.json文件,它包含全球大部分国家1960~2010年的人口数据,来源:https://ehmatthes.github.io/pcc/

2.获取两个字母的国别码

Pygal中的地图制作工具要求数据为特定的格式:用国别码表示国家,以及用数字表示人口数量。population_data.json中包含的是三个字母的国别码,但Pygal使用两个字母的国别码。因此,这里使用get_country_code(country_name)方法,来根据国家名获取两个字母的国别码。

from pygal_maps_world.i18n import COUNTRIESdef get_country_code(country_name):"""根据指定的国家,返回Pygal使用的两个字母的国别码"""for code, name in COUNTRIES.items():if name == country_name:return code# 如果没有找到指定的国家,就返回Nonereturn None

3.制作世界地图

Pygal提供了图表类型Worldmap ,可帮助制作呈现各国数据的世界地图。

import json
import pygal
from country_code import get_country_code# 将数据集加载到一个列表中
filename = 'population_data.json'
with 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"]))code = get_country_code(country_name)if code:cc_populations[code] = population# 根据人口数量将所有的国家分成三组
cc_pop_1, cc_pop_2, cc_pop_3 = {}, {}, {}
for cc, pop in cc_populations.items():if pop < 10000000:cc_pop_1[cc] = popelif pop < 1000000000:cc_pop_2[cc] = popelse:cc_pop_3[cc] = pop# 创建世界人口地图
wm_style = pygal.style.RotateStyle('#336699')  # 让地图的颜色更一致,也更容易区分不同的编组
wm = pygal.maps.world.World(style=wm_style)
wm.title = "World Population in 2010, by Country"
wm.add('0-10m', cc_pop_1)
wm.add('10m-1bn', cc_pop_2)
wm.add('>1bn', cc_pop_3)
wm.render_to_file("world_population_2010.svg")

Python实现世界人口地图相关推荐

  1. Python学习——绘制世界人口地图

    实例训练--绘制世界人口地图 人口数据为json格式文件,因此需使用json模块来处理他们 Pygal提供了一个适合初学者使用的地图创建工具,可以使用它来对人口数据进行可视化,以探索全球人口的分布情况 ...

  2. Python入门:制作世界人口地图

    来源:<Python编程:从入门到实践> 目录 第 16 章 下载数据 16.1 CSV文件格式 16.1.1 分析CSV文件头 16.1.2 打印文件头及其位置 16.1.3 提取并读取 ...

  3. Python 将JSON格式文件进行数据可视化制作世界人口地图

    (一) 制作世界人口地图:JSON格式 下载JSON格式的人口数据,并使用json模块来处理它,Pygal提供一个适合初学者使用的地图创建工具,使用它来对人口数据进行可视化,用来探索全球人口的分布情况 ...

  4. 【Python-3.5】绘制世界人口地图

    本文案例来自<Python编程:从入门到实践>,章节16.2,绘制世界人口地图. 代码中包含两个模块:world_population.py和country_codes.py.pygal中 ...

  5. 制作世界人口地图:JSON格式

    1.获取两个字的国别码 #先安装pygal_maps_world from pygal_maps_world.i18n import COUNTRIES #导入COUNTRIES字典 包含健和值为国别 ...

  6. 为什么说python是世界上最好的语言-Python是世界上最好的语言 吗?

    编程语言的选择是IT圈子永远的争议.在任意一个程序员聚集的场合,喊一句类似于"PHP是世界上最好的语言"这样的话,肯定会惹来不少人和你争论得面红耳赤.那么,Python是世界上最好 ...

  7. Python第一天:你必须要知道的Python擅长领域以及各种重点学习框架(包含Python在世界上...

    [toc] 今天开始将会发布系列型的Python学习, 今天讲述的框架相对来说比较多,只能一一例举出来, 无法进行准确的 Python5大擅长领域 很多学Python的小伙伴, 转行, 或者兴趣还有就 ...

  8. Python第一天:你必须要知道的Python擅长领域以及各种重点学习框架(包含Python在世界上的应用)

    文章目录 Python5大擅长领域 WEB开发 网络编程 科学运算 GUI图形开发 运维自动化 Python在世界上的知名应用 国外 谷歌 CIA NASA YouTube Dropbox Insta ...

  9. python爬虫-世界今日疫情爬虫

    python爬虫-世界今日疫情爬虫 上一篇我的博客中写到对我国疫情的情况爬虫 ,链接为下 中国疫情爬虫. 这篇博客将对世界今日的确诊人数进行爬虫,并将数据保存在excel中.对世界的爬虫方法比爬取中国 ...

最新文章

  1. Docker学习(3)——安装部署过程及简单应用
  2. android高效加载网络图片
  3. 【LeetCode】0136. 只出现一次的数字
  4. Golang入门教程(十五)指针
  5. IM实现联系人及联系人分组的数据库设计
  6. 【C/C++开发】C++实现字符串替换的两种方法
  7. d).关于steal lock
  8. libSM.so.6: cannot open shared object file: No such file or directoryapt-file search libSM.so.6
  9. 队列与栈(Queue,Deque,Stack)
  10. 三端稳压7805和7905稳压原理及典型电路
  11. 银联支付接口申请-手机控件支付
  12. 计算机方向键不能使用,电脑键盘中的数字按键不能用是什么原因?
  13. 网站收录怎么做?如何提升收录【实操篇】
  14. selenium学习指南
  15. uniapp中隐藏Android虚拟按键
  16. 00 引言:你想谈一场恋爱吗?
  17. OpenStack私有云安装配置虚拟机
  18. 江南爱窗帘十大品牌 窗帘发展状况怎么样
  19. 联想笔记本 ThinkPad T440 Wifi无法联网的解决方法
  20. Word7中尾部空格不能显示下划线的解决方法

热门文章

  1. 为什么需要设置System.setProperty(“es.set.netty.runtime.available.processors“, “false“);
  2. Vue + ElementUI 仿视频网站&抖音创作者平台
  3. 算术运算符:取余(取模)%
  4. 极验第四代滑块验证码破解(四):请求分析及加密参数破解
  5. 恢复通讯录显示服务器开小差,恢复备份数据通讯录还是没有找到数据怎么办?...
  6. 【雕虫小技第1篇】如何将Scratch项目(转换)打包为一个HTML文件
  7. .net core 不能更新数据
  8. 不会编程也能爬数据!3个爬虫小工具教你实现~
  9. 数据库主键、外键和唯一键的区别
  10. 【企业信息化系列】如何以BPM流程平台为核心串联公司业务系统