Matplotlib Toolkits:地图绘制工具

有没有一种可以直接在详细地图(如谷歌地图)上绘制上百万坐标点的工具???谷歌地图坐标点多了也不能绘制了。

Basemap

(Not distributed with matplotlib,要手动安装)

Plots data on map projections, with continental and political boundaries, see basemap docs.

安装

先下载anacondaPython 3版本

conda install -c scitools basemap

[Installing]

使用

分辨率设置

if resolution == 'c':
    area_thresh = 10000.
elif resolution == 'l':
    area_thresh = 1000.
elif resolution == 'i':
    area_thresh = 100.
elif resolution == 'h':
    area_thresh = 10.
elif resolution == 'f':
    area_thresh = 1.

[basemap]

[地理信息可视化——Python之matplotlib Basemap简介]

[So You’d Like To Make a Map Using Python]

静态地图示例

# coding=utf8
import os
import sys

import matplotlib.pyplot as plt
import pandas as pd

CWD ]
os.makedirs(os.path.join(CWD, 'middlewares'), exist_ok=True)
sys.path.append(os.path.join(CWD, '../../..'))

df = pd.read_pickle(os.path.join(CWD, 'middlewares/df.pkl'))  # ca datasets
ll = df[['longitude', 'latitude']].values
print(len(ll))
x, y ], ll[]

from mpl_toolkits.basemap import Basemap

# 创建一个地图用于绘制。我们使用的是墨卡托投影,并显示整个世界。
m , , , , , resolution='c')
# 绘制海岸线,以及地图的边缘
m.drawcoastlines()
m.drawmapboundary()
m.drawcountries()
m.drawstates()
m.drawcounties()
x, y = m(y, x)
m.scatter(x, y, , marker='.', color='r')
plt.show()


Debug

m.drawcounties() UnicodeDecodeError: 'utf-8' codec can't decode byte 0xf1 in position 2: invalid continuation byte

解决:shapefile.py源码有错:修改编码为latin-1就可以了,也是醉了。。。

return v.decode('latin-1')
# return v.decode('utf-8')

[[译]比一比:Python的七个数据可视化工具 静态地图]

皮皮blog

Cartopy

评价:安装麻烦,map功能也不能使用了,估计开发者也抛弃了。。。真是跪了。。。lz已弃用

(Not distributed with matplotlib)

Cartopy is a Python package designed to make drawing maps for data analysis and visualisation as easy as possible.

Cartopy makes use of the powerful PROJ.4, numpy and shapely libraries and has a simple and intuitivedrawing interface to matplotlib for creating publication quality maps.

Some of the key features of cartopy are:

  • object oriented projection definitions
  • point, line, vector, polygon and image transformations between projections
  • integration to expose advanced mapping in matplotlib with a simple and intuitive interface
  • powerful vector data handling by integrating shapefile reading with Shapely capabilities

An alternative mapping library written for matplotlib v1.2 and beyond.Cartopy builds on top ofmatplotlib to provide object oriented map projection definitions and closeintegration with Shapely for powerful yet easy-to-use vector data processingtools.

Note: shapely,是geos的python封装,而geos是jts的c++移植版本。[python地理数据处理库geopy]

安装

先下载anacondaPython 3版本

conda install -c scitools cartopy

[Installing Cartopy]

下载配角:地图数据
下载地址:http://www.naturalearthdata.com/downloads/
里面有三种分辨率的shape地图数据可选,方便起见,分别下载三种分辨率中的physical数据中的Coastline和Land数据,每种数据下载后都是一个压缩包,如下载了1:10分辨率的physical中的coastline数据压缩包:ne_10m_coastline.zip,解压缩后有6个文件,其中“ne_10m_coastline.README”和“ne_10m_coastline.VERSION”可直接删除,剩余4个,进行改名操作,扩展名前面的文件名,如“ne_10m_coastline”,修改为“10m_coastline”,即去掉“ne_”,4个文件分别这样更改。再下载1:50和1:110的文件分别进行此操作。所有地图文件下载、解压、更名完毕后,拷贝到一个文件夹下。我的文件夹列表如下图,把这些文件全选(注意进入文件夹目录,全选文件,不带文件夹),复制粘贴到D:\Program Files\WinPython-32bit-2.7.9.3\settings\.local\share\cartopy\shapefiles\natural_earth\physical 目录下(该目录根据自己所装的python而定,运行(1)中的程序后,程序会自动创建physical文件夹,具体该文件夹在哪,搜索电脑文件找找看),我安装的是winpython2.7.9.3,physical目录就位于上面这个目录中,所以我把所有shape地图文件拷贝到了该physical目录下。

[python绘制地图的利器Cartopy使用说明]

或者下载详细地图:http://www.naturalearthdata.com/http//www.naturalearthdata.com/download/10m/cultural/ne_10m_admin_1_states_provinces.zip解压到:c:\Users\《用户》.local\share\cartopy\shapefiles\natural_earth\cultural\

[cartopy_trial]

使用

最近不能使用map服务了:

As of July 11, 2016, direct tile access has been discontinued.Please visit our blog post for more information:http://goo.gl/xB0xXt

[Cartopy]

[examples: Cartopy gallery]

皮皮blog

谷歌地图python接口gmplot

10w以上数据坐标点绘制js就基本崩了不能用了。

Plotting data on Google Maps, the easy way. A matplotlib-likeinterface to generate the HTML and javascript to render all thedata you'd like on top of Google Maps. Several plotting methodsmake creating exploratory map views effortless.

# coding=utf8
import os
import sys

import pandas as pd

CWD ]
df = pd.read_pickle(os.path.join(CWD, 'middlewares/df.pkl'))  # ca datasets
ll = df[['longitude', 'latitude']].values
print(len(ll))
x, y ], ll[]

import gmplot

gmap )
# gmap.plot(latitudes, longitudes, 'cornflowerblue', edge_width=10)
gmap.scatter(x, y, )
# gmap.heatmap(heat_lats, heat_lngs)
gmap.draw("map.html")

[gmplot]

高德地图amap python接口

1)读取文件信息,这里用pandas库以dataframe形式.

2)高德地图添加点有50数量限制,所以lz就直接弃用了。。。

3)将查询经纬度后的结果存为csv

[Python获取amap高德地图]

百度地图python接口

[mapapi > 0.2.1]

[python实现地址分布可视化]

[Baidu与Google地图API初探]

皮皮blog

其它工具

[使用地图工具,给出经纬度,画出受影响的中国省份,(比如台风经过的path、各省经济问题热点图。。。)]

from: Matplotlib Toolkits:地图绘制工具

ref: [Mapping Toolkits]

Matplotlib Toolkits:地图绘制工具的更多相关文章

  1. arcgis api for javascript 学习(五) 实现地图绘制工具

    1.本文实现的功能为鼠标与地图之间的交互,能够在地图上绘制不同形状的图形 2.代码部分主要讲到的为Graphic函数的相关功能 <!DOCTYPE html> <html> & ...

  2. ArcGisJS实现地图常用工具条、距离测量和面积测量(非官方实例)

    常用地图工具包括:平移.拉框缩小.拉框放大.全图.距离测量.面积测量.清除标记,距离测量.面积测量没有使用官方自带的组件代码. 1.距离测量 2.面积测量 3.源代码 <!DOCTYPE htm ...

  3. 矢量图绘制工具Svg-edit调整画布的大小

    矢量图绘制工具Svg-edit调整画布的大小 ------------------------------ ------------------------

  4. C#小程序飞行棋地图绘制

    1. 初始化地图,在绘制时可先将地图进行初始化,用数组来存储关卡的位置,然后利用循环给地图中 关卡所在处赋予代表关卡的值. 关键代码如下 /// <summary> /// 初始化游戏地图 ...

  5. opengl典型例程立方体投影与地图绘制

    立方体投影 http://www.cnblogs.com/opengl/p/3790450.html 地图绘制 http://www.cnblogs.com/opengl/p/3790354.html

  6. 让IE8支持HTML5及canvas功能!chart.js图表绘制工具库IE8上兼容方案

    第一步,我们加上对html5的支持. <!--[if IE]> <script src="/public/html5.js" type="text/ja ...

  7. Graphviz--图形绘制工具

    可以试试ProcessOn.com, 一个专业在线画流程图的工具,使用Chrome&Firefox浏览器,支持快捷键,非常方便.快捷键如下:Ctrl+A 全选,当移动整张图时非常方便Ctrl+ ...

  8. matplotlib之scatter绘制散点

    # 使用matplotlib.pyplot.scatter绘制散点 import matplotlib.pyplot as plt from pylab import mpl # 设置默认字体,解决中 ...

  9. 「工具」三分钟了解一款在线流程绘制工具:Whimsical

    Whimsical 是一款在线流程绘制工具,只需要一个浏览器就随时随地绘制精美的流程图.除了流程图(Flowcharts)功能,官方还推出了线框图(Wireframes).便利贴(Sticky Not ...

随机推荐

  1. python AES加密解密 pycryptodome

    环境 pyhton3.6 博主为了解码 AES 用了1天的时间,安了各种包,然而走了很多坑,在这里给大家提供一个简便的方法 首先在命令行(推荐)  pip install Crypto 你会发现安装下 ...

  2. [NOIp 2012]同余方程

    Description 求关于 x 的同余方程 ax ≡ 1 (mod b)的最小正整数解. Input 输入只有一行,包含两个正整数 a, b,用一个空格隔开. Output 输出只有一行,包含一个 ...

  3. Prison 监狱

    [题目描述]Caima 王国中有一个奇怪的监狱,这个监狱一共有 P 个牢房,这些牢房一字排开,第 i 个仅挨着第 i+1 个(最后一个除外).现在正好牢房是满的.上级下发了一个释放名单,要求每天释放名 ...

  4. hihocoder——1041国庆出游(搜索)

    描述 小Hi和小Ho准备国庆期间去A国旅游.A国的城际交通比较有特色:它共有n座城市(编号1-n):城市之间恰好有n-1条公路相连,形成一个树形公路网.小Hi计划从A国首都(1号城市)出发,自驾遍历所 ...

  5. ZOJ 3228 Searching the String(AC自动机)

    Searching the String Time Limit: 7 Seconds      Memory Limit: 129872 KB Little jay really hates to d ...

  6. Spring学习笔记1——入门

    Spring是一个基于IOC和AOP的结构J2EE系统的框架 IOC 反转控制 是Spring的基础,Inversion Of Control 简单说就是创建对象由以前的程序员自己new 构造方法来调 ...

  7. python day3_liaoxuefeng

    1.Python的循环有两种,一种是for...in循环,依次把list或tuple中的每个元素迭代出来,看例子: names = ['Michael', 'Bob', 'Tracy'] for na ...

  8. Docker 基础 : Dockerfile

    Dockerfile 是一个文本格式的配置文件,用户可以使用 Dockerfile 快速创建自定义的镜像.我们会先介绍 Dockerfile 的基本结构及其支持的众多指令,并具体讲解通过执行指令来编写 ...

  9. python2.7练习小例子(三)

        3):题目:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?     程序分析:假设该数为 x.1.则:x + 100 = n2, x + 100 + ...

  10. mouseover,mouseout和mouseenter,mouseleave的区别及适用情况

    在做类似于百度地图右下角,不同地图切换UI时,遇到了问题. 就是鼠标滑过的时候出现一个层,当鼠标滑到当前层的话mouseover和mouseout在低版本的浏览器会出现闪动的现象,最简单的那就是把mo ...