iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >如何使用python绘制世界人口地图
  • 560
分享到

如何使用python绘制世界人口地图

2023-07-06 12:07:59 560人浏览 八月长安

Python 官方文档:入门教程 => 点击学习

摘要

这篇文章主要介绍“如何使用python绘制世界人口地图”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“如何使用Python绘制世界人口地图”文章能帮助大家解决问题。数据来源:population_da

这篇文章主要介绍“如何使用python绘制世界人口地图”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“如何使用Python绘制世界人口地图”文章能帮助大家解决问题。

数据来源:population_data.JSON,

先看一下数据长啥样

[  {    "Country Name": "Arab World",    "Country Code": "ARB",    "Year": "1960",    "Value": "96388069"  },  {    "Country Name": "Arab World",    "Country Code": "ARB",    "Year": "1961",    "Value": "98882541.4"  },省略。。。。]

'''这个文件实际上就是一个很长的Python列表,其中每个元素都是一个包含四个键的字典:
国家名、国别码、年份以及表示人口数量的值。

我们只关心每个国家2010年的人口数量,因此我们首先编写一个打印这些信息的程序:'''

import json#将数据加载到一个列表中filename= 'population_data.json'with open(filename) as f :    pop_data = json.load(f)#打印每个国家2010年的人口数量for pop_dic in pop_data :     if pop_dic["Year"] == '2010' :         country_name= pop_dic['Country Name']         population =int(float(pop_dic['Value']) )#population_data.json中的每个键和值都是字符串。为处理这些人口数据,我们需要将表示人口数量的字符串转换为数字值,为此我们使用函数int():         print(country_name + ":" + str(population))rab World:357868000Caribbean small states:6880000East Asia & Pacific (all income levels):2201536674East Asia & Pacific (developing only):1961558757Euro area:331766000Europe & Central Asia (all income levels):890424544Europe & Central Asia (developing only):405204000

获取两个字母的国别码

'''制作地图前,还需要解决数据存在的最后一个问题。Pygal中的地图制作工具要求数据为特定的格式:用国别码表示国家,以及用数字表示人口数量。处理地理政治数据时,经常需要用到几个标准化国别码集。

population_data.json中包含的是三个字母的国别码,但Pygal使用两个字母的国别码。我们需要想办法根据国家名获取两个字母的国别码。

Pygal使用的国别码存储在模块i18n(internationalization的缩写)中。

字典COUNTRIES包含的键和值分别为两个字母的国别码和国家名。

要查看这些国别码,可从模块i18n中导入这个字典,并打印其键和值:'''

from pygal_maps_world.i18n import COUNTRIESfor country_code in sorted(COUNTRIES.keys()):    print(country_code, COUNTRIES[country_code])ad Andorraae United Arab Emiratesaf Afghanistanal Albania

为获取国别码,我们将编写一个函数,它在COUNTRIES中查找并返回国别码。

我们将这个函数放在一个名为country_codes的模块中,以便能够在可视化程序中导入它:

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    # 如果没有找到指定的国家,就返回None    return None#打印每个国家2010年的人口数量for pop_dic in pop_data :     if pop_dic["Year"] == '2010' :         country_name= pop_dic['Country Name']         population =int(float(pop_dic['Value']) )#population_data.json中的每个键和值都是字符串。为处理这些人口数据,我们需要将表示人口数量的字符串转换为数字值,为此我们使用函数int():         code =  get_country_code(country_name)         if code :             print(code + ":" + str(population))         else:            print('error - ' + ":" + str(population))error - :357868000error - :6880000error - :2201536674error - :1961558757error - :331766000

导致显示错误消息的原因有两个。首先,并非所有人口数量对应的都是国家,有些人口数量对应的是地区(阿拉伯世界)和经济类群(所有收入水平)。

其次,有些统计数据使用了不同的完整国家名(如Yemen, Rep.,而不是Yemen)。当前,我们将忽略导致错误的数据,看看根据成功恢复了的数据制作出的地图是什么样的。

制作世界地图

import pygal_maps_world.maps#创建了一个Worldmap实例,并设置了该地图的的title属性wm = pygal_maps_world.maps.World()wm.title = 'North, Central, and South America''''了方法add(),它接受一个标签和一个列表,其中后者包含我们要突出的国家的国别码。每次调用add()都将为指定的国家选择一种新颜色,并在图表左边显示该颜色和指定的标签。我们要以同一种颜色显示整个北美地区,因此第一次调用add()时,在传递给它的列表中包含'ca'、'mx'和'us',以同时突出加拿大、墨西哥和美国。接下来,对中美和南美国家做同样的处理。'''wm.add('North America', ['ca', 'mx', 'us'])wm.add('Central America', ['bz', 'cr', 'gt', 'hn', 'ni', 'pa', 'sv'])wm.add('South America', ['ar', 'bo', 'br', 'cl', 'co', 'ec', 'gf','gy', 'pe', 'py', 'sr', 'uy', 've'])'''方法render_to_file()创建一个包含该图表的.svg文件,你可以在浏览器中打开它。输出是一幅以不同颜色突出北美、中美和南美的地图'''wm.render_to_file('americas.svg')

如何使用python绘制世界人口地图

绘制完整的世界人口地图

'''要呈现其他国家的人口数量,需要将前面处理的数据转换为Pygal要求的字典格式:键为两个字母的国别码,值为人口数量。

为此,在world_population.py中添加如下代码:

import  json

#将数据加载到一个列表中filename= 'population_data.json'with open(filename) as f :    pop_data = json.load(f)def get_country_code(country_name):    #根据指定的国家,返回Pygal使用的两个字母的国别码    for code,name in COUNTRIES.items():        if name == country_name :            return code    # 如果没有找到指定的国家,就返回None    return None#创建一个包含人口数量是字典cc_populations = {}#打印每个国家2010年的人口数量for pop_dic in pop_data :     if pop_dic["Year"] == '2010' :         country_name= pop_dic['Country Name']         population =int(float(pop_dic['Value']) )#population_data.json中的每个键和值都是字符串。为处理这些人口数据,我们需要将表示人口数量的字符串转换为数字值,为此我们使用函数int():         code =  get_country_code(country_name)         if code :            cc_populations[code] =  populationimport pygal_maps_world.maps#创建了一个Worldmap实例,并设置了该地图的的title属性wm = pygal_maps_world.maps.World()wm.title = 'world population in 2010, by country'wm.add('2010', cc_populations)wm.render_to_file('world_population.svg')

如何使用python绘制世界人口地图

根据人口数量将国家分组

import json#将数据加载到一个列表中filename= 'population_data.json'with open(filename) as f :    pop_data = json.load(f)def get_country_code(country_name):    #根据指定的国家,返回Pygal使用的两个字母的国别码    for code,name in COUNTRIES.items():        if name == country_name :            return code    # 如果没有找到指定的国家,就返回None    return None#创建一个包含人口数量是字典cc_populations = {}#打印每个国家2010年的人口数量for pop_dic in pop_data :     if pop_dic["Year"] == '2010' :         country_name= pop_dic['Country Name']         population =int(float(pop_dic['Value']) )#population_data.json中的每个键和值都是字符串。为处理这些人口数据,我们需要将表示人口数量的字符串转换为数字值,为此我们使用函数int():         code =  get_country_code(country_name)         if code :            cc_populations[code] =  population###根据人口数量将国家分3组   cc_pop_1,cc_pop_2,cc_pop_3 = {},{},{}for cc,pop in cc_populations.items():    if pop < 10000000:        cc_pop_1[cc] = pop    elif pop < 1000000000:        cc_pop_2[cc] = pop    else:        cc_pop_3[cc] = popimport pygal_maps_world.maps#创建了一个Worldmap实例,并设置了该地图的的title属性wm = pygal_maps_world.maps.World()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.svg')

如何使用python绘制世界人口地图

根据Pygal设置世界地图的样式

在这个地图中,根据人口将国家分组虽然很有效,但默认的颜色设置很难看。例如,在这里,Pygal选择了鲜艳的粉色和绿色基色。

下面使用Pygal样式设置指令来调整颜色。我们也让Pygal使用一种基色,但将指定该基色,并让三个分组的颜色差别更大

###根据Pygal设置世界地图的样式'''在这个地图中,根据人口将国家分组虽然很有效,但默认的颜色设置很难看。例如,在这里,Pygal选择了鲜艳的粉色和绿色基色。下面使用Pygal样式设置指令来调整颜色。我们也让Pygal使用一种基色,但将指定该基色,并让三个分组的颜色差别更大'''###根据人口数量将国家分组import json#将数据加载到一个列表中filename= 'population_data.json'with open(filename) as f :    pop_data = json.load(f)def get_country_code(country_name):    #根据指定的国家,返回Pygal使用的两个字母的国别码    for code,name in COUNTRIES.items():        if name == country_name :            return code    # 如果没有找到指定的国家,就返回None    return None#创建一个包含人口数量是字典cc_populations = {}#打印每个国家2010年的人口数量for pop_dic in pop_data :     if pop_dic["Year"] == '2010' :         country_name= pop_dic['Country Name']         population =int(float(pop_dic['Value']) )#population_data.json中的每个键和值都是字符串。为处理这些人口数据,我们需要将表示人口数量的字符串转换为数字值,为此我们使用函数int():         code =  get_country_code(country_name)         if code :            cc_populations[code] =  population###根据人口数量将国家分3组   cc_pop_1,cc_pop_2,cc_pop_3 = {},{},{}for cc,pop in cc_populations.items():    if pop < 10000000:        cc_pop_1[cc] = pop    elif pop < 1000000000:        cc_pop_2[cc] = pop    else:        cc_pop_3[cc] = popimport pygal_maps_world.maps#创建了一个Worldmap实例,并设置了该地图的的title属性from pygal.style import RotateStylefrom pygal.style import LightColorizedStyle#加亮颜色主题wm_style = RotateStyle('#336699', base_style= LightColorizedStyle)wm = pygal_maps_world.maps.World(style = wm_style)wm.title = 'world population in 2010, by country'wm.add('2010', cc_populations)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.svg')

如何使用python绘制世界人口地图

关于“如何使用python绘制世界人口地图”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注编程网Python频道,小编每天都会为大家更新不同的知识点。

--结束END--

本文标题: 如何使用python绘制世界人口地图

本文链接: https://www.lsjlt.com/news/358075.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 如何使用python绘制世界人口地图
    这篇文章主要介绍“如何使用python绘制世界人口地图”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“如何使用python绘制世界人口地图”文章能帮助大家解决问题。数据来源:population_da...
    99+
    2023-07-06
  • python怎么绘制世界人口地图
    前言数据来源:population_data.json,先看一下数据长啥样[ { "Country Name": "Arab World", "Country Code&...
    99+
    2023-05-14
    Python
  • python数据可视化绘制世界人口地图
    目录前言获取两个字母的国别码制作世界地图绘制完整的世界人口地图根据人口数量将国家分组根据Pygal设置世界地图的样式前言 数据来源:population_data.json, 先看一...
    99+
    2024-04-02
  • 基于Python如何绘制世界地图
    本篇内容介绍了“基于Python如何绘制世界地图”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1.准备开始之前,你要确保Python和pip...
    99+
    2023-07-04
  • Python使用pyecharts绘制世界地图,省级地图,城市地图实例详解
    目录1.世界地图绘制演示① 世界地图数据准备② 世界地图生成2.省份(河北省)地图绘制演示① 省份地图数据准备② 省份地图生成3.城市(承德市)地图绘制演示① 城市地图数据准备② 城...
    99+
    2024-04-02
  • 基于Python绘制世界疫情地图详解
    世界疫情数据下载请点击》》:疫情数据下载 注:此数据是2022年3月12号的结果,其中透明的地方代表确诊人数小于10万人,白色的地方代表无该国家的数据。 最终效果: 下载需要的p...
    99+
    2024-04-02
  • 基于Python实现绘制属于你的世界地图
    目录1.准备2.简单地图3.世界地图Python之所以这么流行,是因为它不仅能够应用于科技领域,还能用来做许多其他学科的研究工具,绘制地图便是其功能之一。 今天我们用matplot工...
    99+
    2022-11-13
    Python绘制世界地图 Python世界地图 Python 地图
  • 如何在Python中使用folium绘制地图
    这期内容当中小编将会给大家带来有关如何在Python中使用folium绘制地图,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。一、简介folium 建立在 Python 生态系统的数据应用能力和 Leafl...
    99+
    2023-06-15
  • Python matplot工具包之一的 mpl_toolkits绘制属于你的世界地图
    Python matplot工具包之一的 mpl_toolkits绘制属于你的世界地图 Python之所以这么流行,是因为它不仅能够应用于科技领域,还能用来做许多其他学科的研究工具,绘制地图便是其功能...
    99+
    2023-09-09
    python matplotlib 开发语言
  • 如何使用angular9+echarts绘制3D地图
    这篇文章主要介绍如何使用angular9+echarts绘制3D地图,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!新建一个angular9的工程安装了@angular-cli的脚手架ng -v查看版本ng new m...
    99+
    2023-06-14
  • 如何使用Python 绘制瀑布图
    目录前言瀑布图瀑布图使用条件举个例子Plotly 绘制瀑布图参数设置完整代码Matplotlib绘制瀑布图总结前言 在日常生活中,我们的工作有时候需要对数据进行可视化,让它一图标之类...
    99+
    2024-04-02
  • Python怎么使用pyecharts绘制地理图表
    这篇文章主要讲解了“Python怎么使用pyecharts绘制地理图表”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Python怎么使用pyecharts绘制地理图表”吧!3D炫酷地图模板系...
    99+
    2023-07-02
  • 如何使用python matplotlib绘制散点图
    今天小编给大家分享一下如何使用python matplotlib绘制散点图的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一...
    99+
    2023-07-02
  • 如何使用Python Matplotlib绘制条形图
    目录前言一、一般条形图二、横向条形图三、分组条形图的绘制四、堆叠条形图绘制总结 前言 matplotlib是一个非常强大的Python第三方绘图包,可以绘制非常多非常漂亮的...
    99+
    2024-04-02
  • UNiAPP中如何使用render.js绘制高德地图
    目录什么是render.js使用方式在uniAPP中使用render.js 绘制高德地图明确需求解决思路编写代码vue页面使用render.js初始化地图实现效果render.js中...
    99+
    2024-04-02
  • Python如何使用Matplotlib绘制甘特图
    小编给大家分享一下Python如何使用Matplotlib绘制甘特图,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!1.引言甘特图已经拥有 100 多年的历史,这种可视化图表对项目管理非常有用。Henry Gantt 为了分...
    99+
    2023-06-22
  • 如何安装Python绘制地图神器folium
    本篇内容主要讲解“如何安装Python绘制地图神器folium”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何安装Python绘制地图神器folium”吧!一、folium简介和安装foliu...
    99+
    2023-06-15
  • 如何利用ECharts和Python接口绘制箱线图
    如何利用ECharts和Python接口绘制箱线图,需要具体代码示例引言:箱线图(Box plot)是统计学中常用的一种可视化方法,用于显示实数型数据的分布情况,通过绘制数据的五数概括(最小值、下四分位数、中位数、上四分位数和最大值)以及异...
    99+
    2023-12-17
    echarts Python接口 箱线图
  • Python中怎么使用pyecharts绘制地理图表
    本篇内容介绍了“Python中怎么使用pyecharts绘制地理图表”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!地图模板系列中国地图展示中...
    99+
    2023-07-02
  • Python中如何使用Matplotlib库绘制图形
    目录前言一、简单的正弦函数与余弦函数二、进阶版正弦函数与余弦函数1.改变颜色与粗细2.设置图片边界3.设置记号4.设置记号的标签5.设置X,Y轴6.完整代码三、绘制简单的折线图总结前...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作