python对数据集处理,绘制世界地图

本文介绍了如何使用Python处理数据集,特别是CSV格式,来绘制世界人口变化地图。通过读取数据、处理数据并利用pygal库,展示了如何将人口数据映射到世界地图上。在处理过程中,需要注意将3位字母的国家代码转换为2位代码以匹配地图模板。文章还讨论了处理无法识别的国家名问题,并提供了改进地图颜色和识别问题的解决方案。
摘要由CSDN通过智能技术生成

数据集一般是 json or csv 格式进行存储的。
本文绘制世界人口地图的数据已上传,或在http://data.okfn.org/ 进行下载。
大致如下:
在这里插入图片描述
对数据如何处理呢?先是需要读取文件,然后将文件内容存储到列表里,再通过可视化的方法,进行处理。
比如:绘制某国家随着时间变化的人口变化图。
只有打开csv格式的是新内容,绘制在前篇博客有讲。

# -*- coding: utf-8 -*-
"""
根据世界各个国家人口在每年人口情况,绘制出随时间的人口数变化图
"""
import csv#导入csv格式的处理模板,如果是json则导入json
from matplotlib import pyplot as plt #处理模板

Country_code = input("请输入需要查询的人口变化图的国家代码:")

population_nums = []#用于存储所有的人口
years = []#用于存储人口对应的年份
filename = "population_csv.csv"#文件名
with open(filename) as f:#打开文件存储为f
    reader = csv.reader(f)#阅读器对象
    header_row = next(reader)#读取第一行,第一行是行的属性。
#    print(header_row)#展示第一行
    #展示属性在列表中的位置
    for index, column_header in enumerate(header_row): 
#        print(index, column_header)
        
        for row in reader:
            if row[1] == Country_code:
                num = int(row[3])
                population_nums.append(num)#将人口存储进入列表
                year = int(row[2])
                years.append(year)#将年份存储进入列表
#        print(population_nums,years)     
        

fig = plt.figure(dpi = 128,figsize =(10,8))#窗口大小
plt.plot(years,population_nums,c = "blue")#横坐标和年份
plt.title( str(Country_code) +" population_num in 1960-2018", fontsize=24)#标题和尺寸 
plt.xlabel('year', fontsize=16)#x轴标题和尺寸
plt.xticks([x for x in range(1960,2019) if x%3 == 0])#设置横坐标的取值点,这里设置为3的倍数。
plt.yticks([y for y in range(0,1492730000,50000000)])
fig.autofmt_xdate()#横坐标斜置
plt.ylabel("population(10^9)", fontsize=16)#y轴标题和尺寸
plt.tick_params(axis='both', which='major', labelsize=16)
plt.axis([1960,2018,0,1492730000])#横纵坐标范围
plt.show()#展示

首先读取了数据,随后由于数据的属性是相同的,根据属性的位置进行查找,获取到满足条件的数据存放到列表中,然后再通过plt进行绘制。
查询中国的人口变化情况:
在这里插入图片描述
USA:
在这里插入图片描述
根据如此多的国家,可以将人口绘制显示在世界地图上吗?先展示一下结果:

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值