技术圈首页
程序员
解决方案
聚合短信
APP下载
登录
注册
首页
文章详情
用Python绘制人口分布经纬网
Python大数据分析
|
156
2022-06-01 17:06
0
0
0
话说,刷朋友圈的时候,发现这样一张图:
全球人口按纬度分布,很明显的可以看见北纬三十度附近,那是红彤彤的一片……
看完之后,虾神突发奇想,就以中国而论是什么样子呢?如果按经度分布,又是什么样子呢?
做为码农,不能光想不练,说动手就动手。
下面是结果:
下面放出完整代码:
本代码没有任何技术难点,关键是效率和速度。
首先是数据:2020全球人口1平方公里的栅格数据,大家可以到下面去下载:
https://www.worldpop.org/geodata/summary?id=24777
然后我在ArcGIS里面,截取了中国范围的数据,如下所示:
可以看见,中国大部分地区还是无人区(平方公里小于50人),而1000人一下的区域,也占到绝大多数,密度比较高的几个地方,比如长三角、京津冀、珠三角:
好了,数据介绍结束,下面看看怎么作图:
整个中国范围内的数据,一共是5670行,7398列。
首先对数据进行统计,分布图的统计方式是以行列进行累加,然后用累加的值做为这个一行(列)的值,所以很简单的分行列累加就行。
但是,如何去累加就需要说到说到了,一般来说,写习惯了传统算法的同学,想到的第一反应肯定按行列就行循环累加……
当然,不能说不行,但是这是一种效率超级低的方法:
这样的迭代方式,把行统计完,需要7.5s……好吧,也不算太慢。
但是有没有更快的方法么?很简单,少一层迭代就行:
少一层迭代,取出每一行,然后用sum函数已处理,速度差不多提升了一倍。
那么……还有没有更快的方法呢?
答案自然就是Python的天赋技能——调包:
直接用numpy的sum包,执行仅需要26.8毫秒。。。效率比最慢的方式,快接近300倍!!
所以,写Python的时候,最关键的地方,在于调包,正如人类对工具的使用能力,决定了人类成为地球的霸主:Python调包的能力,决定了Python的效率。
好了,关键的部分说明了,下面就是绘图了:
源代码的位置依然在老地方:
https://gitee.com/godxia
008人口分布专题图
打完收工
加入知识星球
【我们谈论数据科学】
500+
小伙伴一起学习!
·
推荐阅读
·
盘点2021最佳数据可视化作品
一行代码实现地址信息解析
新一代Python包管理工具来了
0
赞
0
收藏
×
添加附言
附加内容, 使用此功能的话, 会给所有参加过讨论的人发送提醒.
回复数量:
0
暂无评论~~
请注意单词拼写,以及中英文排版,
参考此页
支持 Markdown 格式,
**粗体**
、~~删除线~~、
`单行代码`
, 更多语法请见这里
Markdown 语法
支持表情,见
Emoji cheat sheet
@name 会链接到用户页面,并会通知他
上传图片, 支持拖拽和剪切板黏贴上传, 格式限制 - jp(e)g, png, gif
Ctrl+Enter
下载APP
Python大数据分析
568
文章
2
获赞
关注TA
NEW
相关文章推荐
保姆级教程:Anaconda 安装及使用
关于 pip 的 15 个使用小技巧
PCA主成分分析的可视化(Python)
Python 程序调试分析大杀器合集
被知网侵权长达13年!小说作家:一周前才知道
你家要走光!谷歌地球搞了个「动态世界」,10米精度实时看遍全球土地
知乎热议1300万+!如何看待微软给员工加薪应对通胀!
整理37个超牛逼的Python库,用过6个算你牛!