有时候我们想将自己的数据画在地图上,比如点,线,热体图等。我们先画地图地形底图,然后将数据点画在地图之上。

1. 散点 Basemap.scatter()

比如我们经常会将站点画在地图上,如地震台站,下图中的蓝色倒三角,以及震中(红色五角星)。

import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.basemap import Basemapn = 51
x = np.random.randn(n) * 180
y = np.random.randn(n) * 90map = Basemap()
map.shadedrelief(scale=0.1)
map.drawparallels(circles=np.linspace(-90, 90, 7),labels=[1, 0, 0, 0], color='gray')
map.drawmeridians(meridians=np.linspace(-180, 180, 13),labels=[0, 0, 0, 1], color='gray')
map.scatter(x, y, marker='v', s=100, facecolor='#00BFFF',edgecolor='k', linewidth=1)
map.scatter(0, 0, marker='*', s=450, facecolor='r',edgecolor='k', linewidth=1)
plt.show()

2. 画大圆弧 Basemap.drawgreatcircle()

我们将地震震中和地震台站连起来,由于地图投影方式不同,画出来的曲线形态存在差异,一般大圆弧都是弯曲的。

import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.basemap import Basemapn = 21
x = np.random.randn(n) * 30
y = np.random.randn(n) * 15
x0 = -100; y0 = 30
map = Basemap()
map.shadedrelief(scale=0.1)
map.drawparallels(circles=np.linspace(-90, 90, 7),labels=[1, 0, 0, 0], color='gray')
map.drawmeridians(meridians=np.linspace(-180, 180, 13),labels=[0, 0, 0, 1], color='gray')
order = 0
for (xx, yy) in zip(x, y):map.drawgreatcircle(x0, y0, xx, yy, zorder=order)order += 1
map.scatter(x, y, marker='v', s=100, facecolor='#00BFFF',edgecolor='k', linewidth=1, zorder=order+1)
map.scatter(x0, y0, marker='*', s=450, facecolor='r',edgecolor='k', linewidth=1, zorder=order+1)
plt.show()

3. 画热力图 Basemap.pcolormesh()

有时候我们需要将二维的热力图画在地图之上,比如大地震发生后产生海啸,波在海面表现出的波浪形态。现生成二维数据,再将之画在地图之上。

import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.basemap import Basemapx = np.linspace(-180, 180, 121)
y = np.linspace(-90, 90, 121)
X, Y = np.meshgrid(x, y)
Z = np.exp(-(X**2+Y**2)/3000) * np.sin((X**2+Y**2)/2000) - 0.15map = Basemap()
map.pcolormesh(x, y, Z, cmap='CMRmap', zorder=0)
map.colorbar(shrink=0.5)
map.fillcontinents(color='gray', zorder=1)
map.drawparallels(circles=np.linspace(-90, 90, 7),labels=[1, 0, 0, 0], color='gray')
map.drawmeridians(meridians=np.linspace(-180, 180, 13),labels=[0, 0, 0, 1], color='gray')
map.drawcoastlines(color='w', linewidth=0.5)
map.scatter(0, 0, marker='*', s=450, facecolor='r',edgecolor='k', linewidth=1, zorder=2)
plt.show()

4. 等值线图 Basemap.contourf()和Basemap.contour()

import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.basemap import Basemapx = np.linspace(-180, 180, 121)
y = np.linspace(-90, 90, 121)
X, Y = np.meshgrid(x, y)
Z = np.exp(-(X**2+Y**2)/3000) * np.sin((X**2+Y**2)/2000) - 0.15map = Basemap()
map.contourf(X, Y, Z, cmap='CMRmap', zorder=0)
map.colorbar(shrink=0.5)
CS = map.contour(X, Y, Z, cmap='CMRmap', zorder=0.1)
ax = plt.gca()
ax.clabel(CS, inline=True, fmt='%1.1f', fontsize=14)
map.fillcontinents(color='gray', zorder=1)
map.drawparallels(circles=np.linspace(-90, 90, 7),labels=[1, 0, 0, 0], color='gray')
map.drawmeridians(meridians=np.linspace(-180, 180, 13),labels=[0, 0, 0, 1], color='gray')
map.drawcoastlines(color='w', linewidth=0.5)
map.scatter(0, 0, marker='*', s=450, facecolor='r',edgecolor='k', linewidth=1, zorder=2)
plt.show()

5. 矢量场 Basemap.quiver()

import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.basemap import Basemapx = np.linspace(-180, 180, 31)
y = np.linspace(-90, 90, 31)
X, Y = np.meshgrid(x, y)
U = np.sin(X+Y)
V = np.cos(X+Y)map = Basemap()
map.shadedrelief(scale=0.1)
map.quiver(X, Y, U*250, V*0.1, abs(U+V), cmap='gnuplot')
plt.colorbar(shrink=0.75)
map.drawparallels(circles=np.linspace(-90, 90, 7),labels=[1, 0, 0, 0], color='gray')
map.drawmeridians(meridians=np.linspace(-180, 180, 13),labels=[0, 0, 0, 1], color='gray')
plt.show()

有效数据外含有额外数据_basemap之地图上画额外数据相关推荐

  1. Python采集全国各地百度地图上店铺POI数据(母婴、美食等)

    Python采集全国各地百度地图上店铺POI数据 1. 注册百度地图开放平台账号 先注册百度地图开发平台账号,创建应用,获得AK 2. 通过Python批量检索不同城市店铺POI数据 2.1 大致思路 ...

  2. python爬取电脑本地数据_利用python爬取丁香医生上新型肺炎数据,并下载到本地,附带经纬度信息...

    原标题:利用python爬取丁香医生上新型肺炎数据,并下载到本地,附带经纬度信息 新型肺炎肆虐全国,可以预知,最近一两年地理学中会有一部分论文研究新型肺炎的空间分布及与其他指标的关联分析.获取其患病人 ...

  3. 有效数据外含有额外数据_Excel|应用数据有效性规范数据录入

    [问题] EXCEL输入数据时,经常会输入不规范或者无效的数据,对数据的统计工作带来很大的麻烦. 数据验证能够建立特定的规则,限制单元格可以输入的内容,从而规范数据输入,提高数据统计与分析效率. 数据 ...

  4. 数据中心解决方案之灾备方案设计(上)

    1.数据中心容灾备份解决方案 随着社会的发展和科技的进步,政府日常工作越来越依赖于数据处理来进行,政务系统的连续性依赖于数据中心系统的稳定运行.然而,灾难就像灰尘一样伏击在运营环境周围,政务系统的数据 ...

  5. 爬虫侵入计算机系统,【探讨】利用“爬虫技术”获取数据行为的刑事考量 ——以一起非法获取计算机信息系统数据案为例...

    在本案中最为主要的争议焦点是"公开的信息"是否属于非法获取计算机信息系统数据中的犯罪对象.非法获取计算机信息系统数据罪的保护法益是计算机信息系统安全和数据安全.那么信息是否等同于数 ...

  6. 大数据美食——寻找地图上的美味

    上次分享了<教你30分钟创建汽车大屏>后,来咨询的人很多,其中地图可视化的问题最集中,这次我花了点时间,准备了一份美食相关的测试数据,向大家分享<寻找地图上的美味>是如何做成的 ...

  7. ARCGIS前端--读取excel数据并在地图上显示

    已知一批有经纬度点信息的数据,临时想要在前端地图上展示具体的位置和效果,有三种方法可以实现: 方法一: 传统方法是把数据发布成要素服务,然后在前端调用URL展示,但是当数据变化时,需要重新发布要素服务 ...

  8. 延锋安道拓:简化工作流程 实现研发数据外发安全可控

    客户简介 延锋安道拓座椅有限公司成立于1997年,是由延锋伟世通汽车饰件系统有限公司(隶属于上汽集团华域汽车SH:600741)和美国江森自控国际有限公司(NYSE:JCI)共同投资组建的合资企业,拥 ...

  9. 解决返回的数据中含有 br标签的有效办法

    请求的数据中 含有 <br/>标签 解决办法如下图所示: getDatas: function () {var that = this;wx.request({url: 'https:// ...

最新文章

  1. PHP5.3.8连接Sql Server SQLSRV30
  2. java中使用队列:java.util.Queue
  3. 每天超50亿推广流量、3亿商品展现,阿里妈妈的推荐技术有多牛?
  4. 手机上 a 标签妙用
  5. PayPal API风格指南和设计模式
  6. Convert.ToInt32
  7. Codeforces 1108 E2(线段树+思维)
  8. 2.13生成可控的随机数据集合 模拟色子
  9. 【转】ubuntu 下安装mongodb php 拓展的方法
  10. 数据结构实验之二叉树四:还原二叉树
  11. FLASK安装--兼收EZ_INSTALL及PIP
  12. BAT机器学习面试1000题系列(第1~305题)
  13. 计算机视觉引论及数字成像系统
  14. APP自动化-显示等待/强制等待/命令等待
  15. 轻松转换矢量图的小工具Vector Magic
  16. Proteus软件初学笔记
  17. org.openxmlformats.schemas.spreadsheetml.x2006.main.CTFont.addNewFamily()
  18. vue核心之虚拟DOM(vdom)与真实DOM页面渲染过程
  19. JavaScript事件驱动模型
  20. python soup attrs_python模块之beautifulSoup

热门文章

  1. 精选30道Java笔试题解答
  2. 【自动驾驶】摄像头单目测距原理及实现
  3. 【opencv】13.摄像头焦距和视场角
  4. error C3861: “setw”: 找不到标识符
  5. SCRUM敏捷开发官方权威指南
  6. 深入理解计算机系统9个重点笔记
  7. 初学Java Web(1)——Web概述
  8. [Google Guava] 9-I/O
  9. Activiti 工作流引擎的初步使用
  10. 用 Hadoop 进行分布式并行编程, 第 2 部分 程序实例与分析