本文是利用Python绘制全国各大城市在岗职工平均工资(2016年)的地图分布情况。思路是:首先利用百度地图API爬取各大城市的经纬度坐标(绘制地图需要),而后从中国国家统计局下载2016年全国各大城市在岗职工平均工资数据,调用Python第三方库Folium绘制地图,保存成html文件。

先来看一下最终的效果吧

图1 全国各大城市在岗职工平均工资(2016年)的地图分布情况

环境:windows 64位

平台:Jupyter Notebook (kernel python 3)

库:pandas numpy folium matplotlib

百度地图API获取数据

百度地图提供了强大的API功能,其中输入地点返回经纬度的调用格式为

http://api.map.baidu.com/geocoder?address=地名&output=json&key=你的秘钥

秘钥需要去百度地图API注册,这里提供一个试用秘钥(37492c0ee6f924cb5e934fa08c6b1676)

获取经纬度的函数包括获取数据函数get_posi和解析数据函数parse_result

def get_posi(address):url='http://api.map.baidu.com/geocoder?address='+quote(address)+'&output=json&key=37492c0ee6f924cb5e934fa08c6b1676'#注意quote的用法,要将中文转换req=requests.get(url).json()
#     response=request.urlopen(req)
#     result=req.read()return req
#注意获取网页的方法,直接返回json结构
lats=[]
lngs=[]
def parse_result(result):try:lat=result['result']['location']['lat']lng=result['result']['location']['lng']lats.append(lat)lngs.append(lng)except TypeError:lats.append('None')lngs.append('None')
#添加try,except,如果无结果返回None

获取职工工资数据

数据下载点我

将下载数据中的地点转换为经纬度

df=pd.read_csv(u'在岗职工平均工资(元)2016.csv',encoding='gbk')
addrs=df[u'地区'].tolist()
for each in addrs:result=get_posi(each)parse_result(result)
df['lat']=pd.Series(lats,index=df.index)
df['lng']=pd.Series(lngs,index=df.index)
df.to_csv('revised_data.csv')

这里思路比较简单,读取下载的csv文件中的地区列,并使用tolist函数转换为列表,然后对列表中每个元素执行百度地图API操作,函数看上面,将返回的经纬度信息写入文件中并保存,以备不时之需。

这里需要注意输入“西安”时无效,需要输入“西安市”

利用Folium绘制工资地图

df=pd.read_csv('revised_data.csv',encoding='gbk') #读取数据注意编码
lat=np.array(df['lat'])#读取经度
lng=np.array(df['lng'])#读取纬度
salary=np.array(df['2016年'],dtype=float)#读取工资
data=[[lat[i],lng[i],salary[i]] for i in range(len(lat))]#组合经纬度、工资数据为列表形式
map_osm = folium.Map(location=[35,110],zoom_start=5)    #绘制Map,开始缩放程度是5倍
HeatMap(data).add_to(map_osm)  # 将热力图添加到前面建立的map里
map_osm.save('salary.html')#将绘制好的地图保存为html文件

这里主要是要应用Folium库, 官方文档点我

这样就大功告成了,打开html文件就可以看到工资地图了

Python绘制各大城市职工工资分布地图相关推荐

  1. python绘制一份完美的中国地图

    本文章小编将带你学会使用python绘制一份完美的中国地图~ 昨日,突地被一大早的微博热搜 #自然资源部核查处理问题中国地图# 刷屏,恍惚中看到了近日在追的<亲爱的,热爱的>.小编还沉浸在 ...

  2. 【Python基础】纯Python绘制满满艺术感的山脊地图

    本文示例代码及附件已上传至我的Github仓库https://github.com/CNFeffery/DataScienceStudyNotes 1 简介 下面的这幅图可能很多读者朋友们都看到过,这 ...

  3. python label background设置成透明_纯Python绘制满满艺术感的山脊地图

    点击上方"蓝字"关注我们 Python大数据分析 记录   分享   成长 添加微信号"CNFeffery"加入技术交流群 ❝ 本文示例代码及附件已上传至我的G ...

  4. python 山脊图_纯Python绘制满满艺术感的山脊地图

    ❝ 本文示例代码及附件已上传至我的Github仓库https://github.com/CNFeffery/DataScienceStudyNotes❞ 1 简介 下面的这幅图可能很多读者朋友们都看到 ...

  5. python根据json数据画疫情分布地图

    目录 一.基础地图使用 1.掌握使用pyecharts构建基础的全国地图可视化图表 二.疫情地图--国内疫情地图 1.案例效果 代码 三.疫情地图--省级疫情地图 四.数据集 注:数据集在文章最后 一 ...

  6. [数据分析与可视化] Python绘制数据地图2-GeoPandas地图可视化

    本文主要介绍GeoPandas结合matplotlib实现地图的基础可视化.GeoPandas是一个Python开源项目,旨在提供丰富而简单的地理空间数据处理接口.GeoPandas扩展了Pandas ...

  7. python画树叶-手把手|如何用Python绘制JS地图?

    原标题:手把手|如何用Python绘制JS地图? 关于转载授授权 大数据文摘作品,欢迎个人转发朋友圈,自媒体.媒体.机构转载务必申请授权,后台留言"机构名称+文章标题+转载",申请 ...

  8. 每日一练:Python国内疫情数据爬取与地图绘制

    Python 国内疫情数据爬取与地图绘制 效果图 累计确诊疫情地图绘制 ① 时时数据抓取 ② 获取省份疫情数据 ③ 视觉配置项分段颜色数据设置 ④ 累计确诊疫情地图绘制 现存确诊疫情地图绘制 ① 获取 ...

  9. python 绘制分布直方图_统计学中常见的4种抽样分布及其分布曲线(Python绘制)...

    现代统计学奠基人之一.英国统计学家费希尔(Fisher)曾把抽样分布.参书估计和假设检验看作统计推断的三大中心内容. 统计学中,需要研究统计量的性质,并评价一个统计推断的优良性,而这些取决于其抽样分布 ...

最新文章

  1. Error in ** : incorrect number of dimensions
  2. 翻译连载 | 第 10 章:异步的函数式(下)-《JavaScript轻量级函数式编程》 |《你不知道的JS》姊妹篇...
  3. RDIFramework.NET ━ 9.3 用户管理 ━ Web部分
  4. oracle的隐式游标有哪些,Oracle隐式游标小例子
  5. oracle11g基目录和主目录,Red Hat Enterprise Linux4.0 安装oracle11g
  6. 解决OpenCV JavaCameraView相机preview方向问题
  7. 视频教程-R语言入门基础-大数据
  8. UI设计师常用500多款字体和73款手写字体打包
  9. 服务器cache文件夹里的东西可以删除吗,MSOCache文件夹可以删除吗?如何清理C盘空间?...
  10. 为中国的孩子制造安全的校车
  11. 计算机信息系统安全保护等级由低到高,网络信息系统安全保护等级分为几级?...
  12. [android] 手机卫士黑名单功能(ListView结合SQLite增删改)
  13. R分数复现 R-precision评估指标定量 文本生成图像R分数定量实验全流程复现(R-precision)定量评价实验踩坑避坑流程
  14. Grandpa's Estate POJ - 1228(凸包极角序改写)
  15. 野牛NBIOT 环境监测项目---NBIOT模块/设备简介(二)
  16. 【Python应用】tkinter简介
  17. 谷歌源码输入法修改版(支持拖动,放大缩小)
  18. revit开发之判断两条直线是否平行
  19. 在网页中实现icon小图标的几种方法
  20. java实现定时任务 schedule_Java定时任务调度详解

热门文章

  1. admob插屏激励视频广告
  2. The element or ID supplied is not valid. (videojs) elementui
  3. 【CAD3D】0基础绘制立体模型
  4. 6-1 写文章(*) (10分)
  5. 项目管理中各种英文简称
  6. lazarus 四舍六入修约简述
  7. 山石防火墙命令查看配置_hillstone防火墙配置实例介绍
  8. Cookie与Session的工作流程
  9. 战略规划+数字化转型实战案例——定制家居企业的制胜之道
  10. 中大计算机复试时间,中山大学2017年考研复试时间3月20-4月10日