怎么用Python和用户实际地理位置做任意区域人员流量图

发布时间:2021-11-23 11:51:58 作者:iii
来源:亿速云 阅读:156

本篇内容主要讲解“怎么用Python和用户实际地理位置做任意区域人员流量图”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么用Python和用户实际地理位置做任意区域人员流量图”吧!

一、首先是数据获取数据获取

腾讯其实开放了数据接口,但是只能商用:

怎么用Python和用户实际地理位置做任意区域人员流量图

经过分析发现,每次请求都会发送4个post请求,每次请求的参数如下:

怎么用Python和用户实际地理位置做任意区域人员流量图

怎么用Python和用户实际地理位置做任意区域人员流量图

rank值从1变化到4,咱也不知道是啥意思,索性就都爬了,大不了再去重

返回数据如下:

主要是locs字段,以第一组数据为例,3295代表纬度信息,11590代表经度信息,分别除100既是经纬度原始值,6代表该位置人数。

下面我们开始写写代码获取数据:

import requests
import json
header={
    'User-Agent':'Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:82.0) Gecko/20100101 Firefox/82.0'}
url = 'https://xingyun.map.qq.com/api/getXingyunPoints'
for i in range(1,5):
    payload = {'count': i, 'rank': 0}
    response = requests.post(url, data=json.dumps(payload))
    datas=json.loads(response.text)['locs']
    datas=datas.split(',')
    datas=[int(i) for i in datas[:-1]]
    all_data=[]
    a=[]
    for n,data in enumerate(datas):
        a.append(data)
        all_data.append(a)
        if (n+1)%3==0:
            a=[]
all_data=[[i[0]/100,i[1]/100,i[2]] for i in all_data]

将数据转换为DataFrame格式:

import pandas as pd
lat=[float(i[0]) for i in all_data]
long=[i[1] for i in all_data]
weight=[i[2] for i in all_data]
dataframe=pd.DataFrame({'纬度':lat,'经度':long,'人数':weight})

对数据进行去重:

dataframe=dataframe.drop_duplicates(keep='first')

有了这些坐标信息,我们可以估算一个区域的人流量

pandas小知识:

DataFrame.drop_duplicates(subset=None, keep='first', inplace=False)

subset用来指定特定的列,默认所有列;
keep="first"表示删除重复项并保留第一次出现的项,此外,keep值还可以为'last':表示保留最后一次出现的值;'false':表示所有相同的数据都删除

选定区域:

data1=dataframe[(dataframe.纬度.between(39.26,41.03)) & (dataframe.经度.between(115.25,117.30))]

二、用folium画热力图:

import folium
from folium.plugins import HeatMap
map_data = data1[['纬度', '经度', '人数']].values.tolist()
hmap = folium.Map(
    location=[data1['纬度'].mean(), data1['经度'].mean()],  #地图中心坐标
    control_scale=True, 
    zoom_start=13    #地图显示级别
)
hmap.add_child(HeatMap(map_data, radius=5, gradient={.1: 'blue',.3: 'lime', .5: 'yellow',.7:'red'}))

怎么用Python和用户实际地理位置做任意区域人员流量图

到此,相信大家对“怎么用Python和用户实际地理位置做任意区域人员流量图”有了更深的了解,不妨来实际操作一番吧!这里是亿速云网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

推荐阅读:
  1. python抓取cacti的流量图
  2. cacti流量图异常

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

python

上一篇:hashilb模块怎么用

下一篇:c语言怎么实现含递归清场版扫雷游戏

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》