赞
踩
大家好,本文将围绕python地图可视化分析情绪占比展开说明,python地图可视化各种店铺分布是一个很多人都想弄明白的事情,想搞清楚python画地图数据可视化分析需要先了解以下几个事情。
本文梳理多个Python优质地理数据可视化工具,有的擅长交互、有的擅长学术研究、有的擅长商用地图展示。
Basemap为地理空间数据可视化利器,偏学院派
python高级工程师证怎么考。
依赖PROJ.4C,为提供的经纬坐标指定basemap25个投影方式中的一类,每一类都有自己的优缺点,如下文代码中的projection='ortho';
依赖Matplotlib,在PROJ.4C指定的投影方式中绘制海岸线、河流线和政治边界线;
依赖GEOS,将海岸线、河流线和政治边界线裁剪至目的区域;
Basemap创建以来,为了满足地球科学、海洋学、气象学等领域科学家的需求,功能日益强大。但是,自2016年起,Cartopy开始接管了Basemap,至2020年8月7日,后者停止维护,大部分功能转移到Cartopy下
,Basemap依旧可以使用,但是安装起来有点麻烦
。
- # 下载源码:https://github.com/matplotlib/basemap/releases/
-
- #解压
- tar -zxvf basemap-1.2.2rel.tar.gz
-
- #修改配置
- cd basemap-1.2.2rel/geos-3.3.3/
- export GEOS_DIR=/usr/local
- ./configure --prefix=$GEOS_DIR
- make #这一步时间有点久,出现好多warning,
- make install
- cd ../
- python setup.py install
举个栗子,我们生活的蓝色星球全貌,
- import pyproj
- import geos
- from mpl_toolkits.basemap import Basemap
- # Basemap依赖pyproj和geos,三者一起导入,不然报错
- import matplotlib.pyplot as plt
-
- plt.figure(dpi=150,figsize=(6,6))
-
- m = Basemap(
- projection='ortho', #指定投影方式ortho
- lat_0=0,
- lon_0=140, #设置投影中心
- resolution=None #设置分辨率
- )
- m.bluemarble(scale=0.5) #设置蓝色弹珠 (The Blue Marble)背景
-
- plt.show();

深入学习:https://matplotlib.org/basemap/index.html
Folium
是Python数据处理优势和JavaScript地图库Leaflet.js
地图可视化优势的完美结合,二者结合后即可绘制优美的交互式地图。「小科普
:Folium和Leaf都有叶子的意思,这可能是Folium名称的由来~」
一些栗子~
- import folium
-
- whm = folium.Map(
- location=[30.5538, 114.31589], #武昌区经纬度
- zoom_start=10, # 默认放大倍数
- )
-
- folium.Marker( #添加位置标示
- location=[30.5538, 114.31589],
- popup="❤️武汉",
- icon=folium.Icon(color="#ba2f2a", icon="info-sign"),
- ).add_to(whm)
-
- folium.CircleMarker( #圈地
- location=[30.5538, 114.31589],
- radius=100, #圈半径
- color="#c72e29",
- fill=True,
- fill_color="#c72e29",
- ).add_to(whm)
-
- folium.Marker(
- location=[30.34653, 114.27001],
- popup="❤️",
- icon=folium.Icon(color="blue", icon="info-sign"),
- ).add_to(whm)
-
- folium.CircleMarker(
- location=[30.34653, 114.31001],
- radius=100,
- color="#01a2d9",
- fill=True,
- fill_color="#01a2d9",
- ).add_to(whm)
- whm

再举个栗子,
Heatmap
,
- # Heatmap
- import numpy as np
- import folium
- from folium.plugins import HeatMap
-
- data = (np.random.normal(size=(50, 3)) * np.array([[1, 1, 1]]) +
- np.array([[39.904989, 116.4052859, 1]])).tolist()
-
- m = folium.Map([39.904989, 116.4052859], zoom_start=6)
- HeatMap(data, radius=20).add_to(m)
- m
Minicharts
Marker
ImageOverlay
choropleth
Heatmap with time
MiniMap
除此之外,
Folium还有很多的插件
,如draw深入学习:http://python-visualization.github.io/folium/index.html
pyecharts
擅长商业交互可视化
,地图是其重要一部分,有大量demo,代码拿来即可用。快速入门
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。