查看原文
其他

Python与百度地图合璧,绘制棒呆的热力地图

爬虫俱乐部 Stata and Python数据分析 2022-03-15

本文作者:崔赵雯,中南财经政法大学金融学院

本文编辑:寇晓璇

技术总编:王子一

Stata&Python云端课程来啦!

     寒雪梅中尽,春风柳上归。为了感谢大家长久以来的支持和信任,爬虫俱乐部为大家送福利啦!!!Stata&python特惠课程双双上线腾讯课堂~原价2400元的Python编程培训课程,现在仅需100元,详情请查看推文《Python云端课程福利大放送!0基础也能学~》;原价600元的正则表达式课程,现在仅需49.9元,详情请查看推文《与春天有个约会,爬虫俱乐部重磅推出正则表达式网络课程!》;原价600元的基本字符串函数课程,现在仅需49.9元,更多信息请查看推文《与春天有个约会,爬虫俱乐部重磅推出基本字符串函数网络课程;原价600元的网络爬虫课程,现在仅需49.9元,更多信息请查看推文《与春天有个约会,爬虫俱乐部重磅推出网络爬虫专题课程》原价600元的文本分析课程,现在仅需49.9元,更多信息请查看推文与春天有个约会,爬虫俱乐部重磅推出文本分析网络课程。变的是价格,不变的是课程质量和答疑服务。对报名有任何疑问欢迎在公众号后台和腾讯课堂留言哦!

哈喽呀,铁铁们~上回说到,厦门大学、清华大学和四川大学分别获得了双一流大学月关注度排行榜冠亚季军的头衔(《【爬虫实战】双一流大学的月关注度》),今天俺们就根据双一流大学月关注度的数据,让Python与百度地图双剑合璧,绘制双一流大学月关注度的热力地图~


一、获取百度地图AK

首先,我们打开“百度地图开发平台”的官网。

接着,我们点开右上角“控制台”选项;

下拉左侧“应用管理”,点开“我的应用”。

然后,点击”创建应用“。

进入创建应用页面后,需要注意的是,我们要在应用类型选项中选择浏览器端,在Referer白名单中输入*,然后点击提交按钮。

一顿操作后,我们就得到了AK码。


二、利用百度地图转换经纬度坐标

首先,我们要找到正确的url以及请求参数的设置,我们下拉页面上方的“开发文档”,选择“Web服务API”。

进入页面后,下拉左侧“正/逆地理编码”,选择“地理编码”,接着点击“服务文档”,我们就可以看到正确的url以及请求参数的设置。

然后,搓搓小手,俺们就可以敲代码获取双一流大学所在位置的经纬度坐标了。(ps:这里我们用的数据是上一回爬下来的双一流大学名称及所在地的数据呦~)
1import json
2from urllib.request import urlopen, quote
3import requests,csv
4import pandas as pd 
5
6def getlnglat(address):
7    url = 'http://api.map.baidu.com/geocoding/v3/?'
8    output = 'json'
9    ak = "eoQhtsKKayNsOnNz6HcXkFT2iE5rdX4O"
10    add = quote(address) #由于本文城市变量为中文,为防止乱码,先用quote进行编码
11    uri = url + 'address=' + add  + '&output=' + output + '&ak=' + ak
12    req = requests.get(uri,timeout=3)
13    res = req.content.decode() #将其他编码的字符串解码成unicode
14    temp = json.loads(res)
15    return temp
16
17file = open(r'/Users/cc/Desktop/cc的推文/热力图/热力图.json','w'#建立json数据文件
18df = pd.read_excel(r'/Users/cc/Desktop/cc的推文/热力图/双一流高校名单及所在地.xlsx')
19for a,b,c in zip(df['名称'],df['所在地'],df['月关注度']):
20    print(a,b,c)
21    lng = getlnglat(b)['result']['location']['lng'#采用构造的函数来获取经度
22    lat = getlnglat(b)['result']['location']['lat'#获取纬度
23    str_temp = '{"lng":' + str(lng) + ',"lat":' + str(lat) + ',"count":' + str(c) + '},'
24    file.write(str_temp) #写入文档
25file.close() #保存
程序运行完后,我们获得一个“热力图.json”的json文件,就可以进行下一步了。

三、绘制热力图

首先,我们下拉“开发文档”,选择“示例中心”选项。

进入后,我们选择“JavaScript API”。

在页面左侧下拉“JavaScript API v2.0”找到”添加热力图“,然后点击“显示热力图”,即可看到示例热力图的效果。

接着,我们在示例代码中进行修改,得到我们想要的热力图。

  • A处将自己的密匙(AK)代替“您的密匙”;

  • B处选一个地图的中心点,本文以北京天安门为中心点;

    (http://api.map.baidu.com/lbsapi/creatmap/ 可进行某地经纬度查询)

  • C处var points的内容换成我们得到的json文件中的内容。

这样我们就得到了双一流大学月关注度的热力地图。

从图中可以看出,北京、上海等地的关注度相对较高,这与该地双一流院校较多、经济较为发达等因素有关。

以上就是今天的全部内容了,如果对你有帮助的话,别忘了点个赞呀,加个关注、转载、打赏都最好不过啦~


对我们的推文累计打赏超过1000元,我们即可给您开具发票,发票类别为“咨询费”。用心做事,不负您的支持!

往期推文推荐

【数据可视化】统计图绘制神器:Seaborn

检索Stata推文的“任意门”
学会了这些,分分钟提升你的毕业体验

【爬虫实战】双一流大学的月关注度

【爬虫实战】“中国人不吃这一套”——人民日报微博评论分析

进化的标签管理助手——elabel命令

“学术明星”——双重差分法(DID)的Stata操作

偷懒小妙招| selenium之玩转鼠标键盘操作(上)

【爬虫实战】南京地铁又上热榜——客流量分析

renfiles:批量重命名文件的利器

Stata中字符串的处理

物以类聚——浅述k-means聚类算法

我在哪里?调用高德API获取地址经纬度信息

超级简单的条件函数,轻松生成虚拟变量

Python云端课程福利大放送!0基础也能学~

【爬虫实战】“我们,继续新故事”——爬取LOL英雄皮肤

“人像动漫化”—Python实现抖音特效

跨框架合并数据|frlink的用法,你get到了吗

《唐探3》做错了什么?|来自150万字影评的证据

爬虫俱乐部年度总结|《请回答2020》

春节假期临近,来爬爬豆瓣看看有什么好剧

putdocx生成Word文档so easy!

模糊匹配我只用这一招!

利用tushare获取财务数据

爬虫实战|Selenium爬取微信公众号标题与链接

轻轻一点,就知有没有|rqrs命令介绍

关于我们 


微信公众号“Stata and Python数据分析”分享实用的Stata、Python等软件的数据处理知识,欢迎转载、打赏。我们是由李春涛教授领导下的研究生及本科生组成的大数据处理和分析团队。



此外,欢迎大家踊跃投稿,介绍一些关于Stata和Python的数据处理和分析技巧。

投稿邮箱:statatraining@163.com投稿要求:
1)必须原创,禁止抄袭;
2)必须准确,详细,有例子,有截图;
注意事项:
1)所有投稿都会经过本公众号运营团队成员的审核,审核通过才可录用,一经录用,会在该推文里为作者署名,并有赏金分成。
2)邮件请注明投稿,邮件名称为“投稿+推文名称”。
3)应广大读者要求,现开通有偿问答服务,如果大家遇到有关数据处理、分析等问题,可以在公众号中提出,只需支付少量赏金,我们会在后期的推文里给予解答。

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存