资讯 小学 初中 高中 语言 会计职称 学历提升 法考 计算机考试 医护考试 建工考试 教育百科
栏目分类:
子分类:
返回
空麓网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
空麓网 > 计算机考试 > 软件开发 > 后端开发 > Python

小福利,使用python里面的basemap模块和folium模块制作可视化地图

Python 更新时间: 发布时间: 计算机考试归档 最新发布

小福利,使用python里面的basemap模块和folium模块制作可视化地图

小福利,使用python里面的basemap模块和folium模块制作可视化地图

#首先导入模块
import json,folium,requests
import mimetypes
import http.client
import pandas as pd
from folium.plugins import HeatMap
from pandas.io.json import json_normalize

#载入数据
df=pd.read_excel('D:stockdatacovid-new.xlsx')
df_confirm2=pd.read_excel('D:stockdatalocal_covid19.xlsx')
df.head() 查看数据
covid2=df.drop(columns=['编码','疫苗','日期'],axis=1)去除不需要的字段

#作图
m=folium.Map(tiles="Stamen Terrain",min_zoom=1.5)
m

country_shapes='D:stockdataworld.json'
folium.Choropleth(
    geo_data=country_shapes,
    min_zoom=2,
    name='covid-19',
    data=df,
    columns=['Country','累计确诊'],
    fill_color='OrRd',
    nan_fill_color='black',
    legend_name='累计确诊',
).add_to(m)

m

这里将数据加载到图片上,就可以让不同的区域显示不同的颜色,这里缺少世界地图的json数据,还有经纬度数据,所以展示效果不好。

下面模拟一些坐标数据,做一个热力图展示。

# generated data
import numpy as np
data = (
    np.random.normal(size=(100, 3)) *
    np.array([[0.1, 0.1, 0.1]]) +
    np.array([[47.5451, -122.3010, 1]])
).tolist()
data[:3]

# HeatMap
from folium.plugins import HeatMap
m = folium.Map([47.5451, -122.3010], tiles='stamentoner', zoom_start=6)
HeatMap(data).add_to(m)
# m.save(os.path.join('results', 'Heatmap.html'))
m

=====================================

小福利,用python里面的basemap模块做可视化图片

# _*_ coding: utf-8 _*_
__author__ = 'xbr'
__date__ = '2019/1/11 14:49'

from mpl_toolkits.basemap import Basemap
import matplotlib.pyplot as plt
import pandas as pd
import numpy as np

# 用来正常显示中文
plt.rcParams['font.sans-serif'] = ['SimHei']
# 用来正常显示负号
plt.rcParams['axes.unicode_minus'] = False
# 获取PM2.5数据
df = pd.read_excel(r'D:stockdata20180101PM25-CHINA.xlsx')
# 剔除无效值NAN
df = df.dropna(axis=0, how='any')

lat = np.array(df["lat"][:])  # 获取维度之维度值
lon = np.array(df["lon"][:])  # 获取经度值
PM25 = np.array(df["PM25"][:], dtype=float)
# 画图
fig = plt.figure(figsize=(16, 9))
plt.rc('font', size=15, weight='bold')
ax = fig.add_subplot(111)
# 添加标题,PM2.5下标设置
plt.title(u'2018年01月01日中国地区$mathrm{PM}_{2.5}$质量浓度分布', size=25, weight='bold')
# 创建底图,等经纬度投影
mp = Basemap(llcrnrlon=73., llcrnrlat=17.,
             urcrnrlon=135., urcrnrlat=55,
             projection='cyl', resolution='h')
# 添加海岸线
mp.drawcoastlines()
# 添加国家行政边界
mp.drawcountries()
# 设置colorbar中颜色间隔个数
levels = np.linspace(0, np.max(PM25), 20)
# cf = mp.scatter(lon, lat, PM25, marker='o', color='r')
# 设置颜色表示数值大小
cf = mp.scatter(lon, lat, PM25, c=PM25, cmap='jet', alpha=0.75)
# 设置上下标以及单位的希腊字母
cbar = mp.colorbar(cf, location='right', format='%d', size=0.3,
                   ticks=np.linspace(0, np.max(PM25), 10),
                   label='$mathrm{PM}_{2.5}$($mu$g/$mathrm{m}^{3}$)')
plt.show()

fig.savefig("first.png")

图片效果

原文地址https://blog.csdn.net/XBR_2014/article/details/88931918

====================================

# _*_ coding: utf-8 _*_
__author__ = 'xbr'
__date__ = '2019/1/9 15:47'

import numpy as np
import pandas as pd
import folium
import webbrowser
from folium.plugins import HeatMap

# 读取csv文件,以Dataframe形式保存
# df = pd.read_csv(r"D:stockdataPM25-20180101.csv")
df = pd.read_excel(r'D:stockdata20180101PM25-CHINA.xlsx')
# 获取数据个数
num = df.shape[0]
# 获取纬度
lat = np.array(df["lat"][0:num])
# 获取经度
lon = np.array(df["lon"][0:num])
# 获取PM2.5,转化为numpy浮点型
pm25 = np.array(df["PM25"][0:num], dtype=float)
# 将数据制作成[lats, lons, weights]的形式
data1 = [[lat[i], lon[i], pm25[i]] for i in range(num)]
# 绘制Map,中心经纬度[32, 120],开始缩放程度是5倍
map_osm = folium.Map(location=[32, 120], zoom_start=5)
# 将热力图添加到前面建立的map里
HeatMap(data1).add_to(map_osm)

file_path = r"D:AirQualityMap.html"
# 保存为html文件
map_osm.save(file_path)
# 默认浏览器打开
webbrowser.open(file_path)

图片效果

转载请注明:文章转载自 http://www.konglu.com/
本文地址:http://www.konglu.com/it/849264.html
免责声明:

我们致力于保护作者版权,注重分享,被刊用文章【小福利,使用python里面的basemap模块和folium模块制作可视化地图】因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理,本文部分文字与图片资源来自于网络,转载此文是出于传递更多信息之目的,若有来源标注错误或侵犯了您的合法权益,请立即通知我们,情况属实,我们会第一时间予以删除,并同时向您表示歉意,谢谢!

我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2023 成都空麓科技有限公司

ICP备案号:蜀ICP备2023000828号-2