Matplotlib底图:消除海洋

gfdsal

我有一个网格图,要在其上覆盖底图中的大洲。我正在使用此代码:

       from mpl_toolkits.basemap import Basemap
       import matplotlib.pyplot as plt
       m = Basemap(width=12000000,height=9000000,projection='lcc',
            resolution=None,lat_1=45.,lat_2=55,lat_0=50,lon_0=-107.)

       m.drawlsmask(land_color='coral',ocean_color='aqua',lakes=True)
       plt.show()

提到这一点,我的要求是相反的。我希望在网格图或图像的顶部都具有大洲,因此只能看到海洋区域的网格。

斯沃琪

您的要求:

  1. 在网格图和/或图像顶部具有大洲的图
  2. 仅可见海洋区域的网格/图像

要获得图,必须在涉及的每个图层中使用“ zorder”。要绘制的数据必须适当地转换。这是您可以尝试使用的代码,以及它产生的输出图。

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

m = Basemap(projection='lcc', width=12000000, height=9000000, 
    resolution='c', lat_1=45., lat_2=55, lat_0=50, lon_0=-107.)

# if resolution is None, coastlines wont draw

# draw only land areas with zorder=20
# any other layers with zorder below 20 will be hidden by land areas
m.drawlsmask(land_color='coral', ocean_color='none', lakes=True, zorder=20)
m.drawcoastlines(linewidth=0.3, color='gray', zorder=25)

filename = "small_01.png"  #use your image here
lonmin, lonmax, latmin, latmax = (-130, -40, 35, 45) # set limits of the image

# compute the limits of the image in data coordinates
left, bottom = m (lonmin, latmin)
top, right = m(lonmax, latmax)
image_extent = (left, right, bottom, top)

ax = plt.gca()
# set zorder < 20, to plot the image below land areas
ax.imshow(plt.imread(filename), extent=image_extent, zorder=15)

# plot some meshgrid data
# set zorder above image, but below land
xs = np.linspace(-130, -60, 20)
ys = np.linspace(20, 60, 10)
x2d, y2d = np.meshgrid(xs, ys)

#ax.plot(*m(x2d, y2d), 'ro', zorder=16)  # faster
ax.scatter(*m(x2d, y2d), s=2, zorder=16)

plt.show()

在此处输入图片说明

编辑1

一些有用的代码段:

# This plots shaded relief terrain covering land and sea.
m.shadedrelief(zorder = 25)

# This plots only ocean/sea parts on top.
m.drawlsmask(land_color='none', ocean_color='aqua', zorder=26)

在此处输入图片说明

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Matplotlib底图动画

来自分类Dev

减小Matplotlib底图的大小

来自分类Dev

在Matplotlib底图中显示图例

来自分类Dev

Matplotlib 底图:删除绘制点

来自分类Dev

Matplotlib底图工具包安装问题

来自分类Dev

使用matplotlib底图绘制.tif GDAL栅格

来自分类Dev

使用matplotlib底图绘制.tif GDAL栅格

来自分类Dev

Matplotlib-底图安装错误

来自分类Dev

在matplotlib中安装底图时遇到问题

来自分类Dev

在matplotlib底图中使用比例尺

来自分类Dev

在Matplotlib底图正射投影中更改图像背景颜色

来自分类Dev

具有底图的Matplotlib子图动画

来自分类Dev

使用北向和东向坐标的Python matplotlib底图

来自分类Dev

在Matplotlib底图正射投影中更改图像背景颜色

来自分类Dev

matplotlib底图,其图例与地图上点的大小相对应

来自分类Dev

Matplotlib /底图:在图的中心绘制地球仪

来自分类Dev

Python在matplotlib底图中绘制逗号分隔坐标(纬度,经度)

来自分类Dev

在海洋/ matplotlib中绘制轮廓圆形颜色条

来自分类Dev

如何消除matplotlib(pyplot)中的平滑?

来自分类Dev

如何在matplotlib底图中绘制高分辨率的etopo背景?

来自分类Dev

如何使用底图和matplotlib仅显示一个国家的详细地图?

来自分类Dev

带FFMpegwriter的Python Matplotlib底图动画会在820帧后停止吗?

来自分类Dev

Matplotlib底图+带不规则2d numpy数组的轮廓线

来自分类Dev

如何通过 Python 在 Matplotlib 中的底图投影上制作平滑圆

来自分类Dev

getfromLocation返回海洋或海洋名称

来自分类Dev

如何消除Matplotlib条形图中的条形之间的间隙

来自分类Dev

在Matplotlib底图中使用Python将自然地球形状绘制为多边形

来自分类Dev

从悬停时的底图触发的透明底图

来自分类Dev

导入底图时的ImportError

Related 相关文章

  1. 1

    Matplotlib底图动画

  2. 2

    减小Matplotlib底图的大小

  3. 3

    在Matplotlib底图中显示图例

  4. 4

    Matplotlib 底图:删除绘制点

  5. 5

    Matplotlib底图工具包安装问题

  6. 6

    使用matplotlib底图绘制.tif GDAL栅格

  7. 7

    使用matplotlib底图绘制.tif GDAL栅格

  8. 8

    Matplotlib-底图安装错误

  9. 9

    在matplotlib中安装底图时遇到问题

  10. 10

    在matplotlib底图中使用比例尺

  11. 11

    在Matplotlib底图正射投影中更改图像背景颜色

  12. 12

    具有底图的Matplotlib子图动画

  13. 13

    使用北向和东向坐标的Python matplotlib底图

  14. 14

    在Matplotlib底图正射投影中更改图像背景颜色

  15. 15

    matplotlib底图,其图例与地图上点的大小相对应

  16. 16

    Matplotlib /底图:在图的中心绘制地球仪

  17. 17

    Python在matplotlib底图中绘制逗号分隔坐标(纬度,经度)

  18. 18

    在海洋/ matplotlib中绘制轮廓圆形颜色条

  19. 19

    如何消除matplotlib(pyplot)中的平滑?

  20. 20

    如何在matplotlib底图中绘制高分辨率的etopo背景?

  21. 21

    如何使用底图和matplotlib仅显示一个国家的详细地图?

  22. 22

    带FFMpegwriter的Python Matplotlib底图动画会在820帧后停止吗?

  23. 23

    Matplotlib底图+带不规则2d numpy数组的轮廓线

  24. 24

    如何通过 Python 在 Matplotlib 中的底图投影上制作平滑圆

  25. 25

    getfromLocation返回海洋或海洋名称

  26. 26

    如何消除Matplotlib条形图中的条形之间的间隙

  27. 27

    在Matplotlib底图中使用Python将自然地球形状绘制为多边形

  28. 28

    从悬停时的底图触发的透明底图

  29. 29

    导入底图时的ImportError

热门标签

归档