python/folium绘制中国人口数量热力图(HeatMap)

之前写过一篇博客,使用basemap实现的,

Basemap绘制中国地图

今天发现另一个软件库folium可以实现对openstreetmap的调用,参考链接http://blog.csdn.net/qq_14906811/article/details/74906275 ,下面是操作步骤:


  • 下载2015Cities-CHINA.xlsx ,包含中国各城市的经纬度,人口数量,GDP,自己网上搜索整理,数据可能过时了,和维基百科查到的数据不太对,但是拿来写个小程序还是足够的)
  • 安装folium

pip3 install folium

  • 代码实现
# -*- coding: utf-8 -*-
"""
Created on Sat Dec 23 20:19:47 2017

@author: 周文青
"""

import numpy as np
import pandas as pd
import seaborn as sns
import folium
import webbrowser
from folium.plugins import HeatMap
# posi=pd.read_csv("D:\\Files\\datasets\\CitiesLatLon_China.csv")

posi=pd.read_excel("2015Cities-CHINA.xlsx")

num = 10

lat = np.array(posi["lat"][0:num])                        # 获取维度之维度值
lon = np.array(posi["lon"][0:num])                        # 获取经度值
pop = np.array(posi["pop"][0:num],dtype=float)    # 获取人口数,转化为numpy浮点型
gdp = np.array(posi["GDP"][0:num],dtype=float)    # 获取人口数,转化为numpy浮点型

data1 = [[lat[i],lon[i],pop[i]] for i in range(num)]    #将数据制作成[lats,lons,weights]的形式

map_osm = folium.Map(location=[35,110],zoom_start=5)    #绘制Map,开始缩放程度是5倍
HeatMap(data1).add_to(map_osm)  # 将热力图添加到前面建立的map里

file_path = r"D:\Files\python\地图\人口.html"
map_osm.save(file_path)     # 保存为html文件

webbrowser.open(file_path)  # 默认浏览器打开
  • 结果:
    这里写图片描述
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值