当前位置: 首页 > 知识库问答 >
问题:

用彩色海洋进行极赤平投影的Geopandas世界地图

冉俊德
2023-03-14

为这个问题增加一个进一步的要求,我还需要蓝色(或任何其他颜色)的海洋。

对于PlateCarree投影,我可以简单地这样做

crs = ccrs.PlateCarree()
crs_proj4 = crs.proj4_init
world = gpd.read_file(gpd.datasets.get_path("naturalearth_lowres"))
w = world.to_crs(crs_proj4)
g = w.plot(facecolor='sandybrown', edgecolor='black')

现在加上海洋的颜色

g.set_facecolor('#A8C5DD')

如果我现在想用极赤平投影

ccrs.NorthPolarStereo()

ccrs.SouthPolarStereo()

投影不起作用。当应用这个问题的答案时,我无法得到答案

共有1个答案

邹举
2023-03-14

您需要在Cartopygeoaxes上绘制地图几何图形,并使用Cartopy.feature.OCEAN绘制海洋。下面是您可以尝试的工作代码。阅读代码中的注释以进行澄清。

import geopandas as gpd
import cartopy.crs as ccrs
import matplotlib.pyplot as plt
import cartopy

facecolor = 'sandybrown'
edgecolor = 'black'
ocean_color = '#A8C5DD'

#crs1 = ccrs.SouthPolarStereo()
crs1 = ccrs.NorthPolarStereo()

world = gpd.read_file(gpd.datasets.get_path("naturalearth_lowres"))
w1 = world.to_crs(crs1.proj4_init)

fig1, ax1 = plt.subplots(figsize=(7,7), subplot_kw={'projection': crs1})

# useful code to set map extent,
# --- if you want maximum extent, comment out the next line of code ---
ax1.set_extent([-60.14, 130.4, -13.12, -24.59], crs=ccrs.PlateCarree())

# at maximum extent, the circular bound trims map features nicely
ax1.add_geometries(w1['geometry'], crs=crs1, \
                facecolor=facecolor, \
                edgecolor=edgecolor, \
                linewidth=0.5)

# this adds the ocean coloring
ax1.add_feature(cartopy.feature.OCEAN, facecolor=ocean_color, edgecolor='none')

plt.show()

输出图将是:

 类似资料:
  • 我正在尝试使用Geopandas和Matplotlib绘制西班牙地图。我使用的是您在下面看到的GeoJSON文件,其中的几何体是地理坐标(EPSG 4326) 我想在墨卡托投影中绘制地图,但当我尝试使用 我收到一个错误说: 我已按照本手册中的说明进行操作http://geopandas.org/projections.html. 其中指出,如果geopandas数据帧不与CRS的信息一起计算,则必

  • D3默认包括了一些常见投影,如下所示。众多的(不太常用的)投影在扩展地理投影插件和多面体投影插件中是可用的。 由D3提供的大多数投影都是通过d3.geo.projection来创建并配置的,你可以旋转这个地球,缩放或转换画布等。除非你正在执行一个新的原始投影,否则你可能不会用D3.geo.projection来构造,但是你有可能使用这个配置方法。 d3.geo.projection(raw) 从指

  • 海洋是3D地球表面表示海洋的特定区域,在Gio地球表面,海洋是最暗的区域。海洋的默认亮度是0.5。 可以通过 configure() API来设置海洋的亮度,具体设置方式如下所示: controller.configure({         brightness: {                 ocean:0.8         } }); 也可以通过 adjustOceanBrightn

  • 本文向大家介绍使用HTML5画布进行投影,包括了使用HTML5画布进行投影的使用技巧和注意事项,需要的朋友参考一下 HTML5 canvas提供了在图纸周围创建漂亮阴影的功能。所有绘图操作均受四个全局阴影属性影响。 序号 属性和说明 1 shadowColor [=值] 此属性返回当前阴影颜色,可以对其进行设置以更改阴影颜色。 2 shadowOffsetX [=值] 此属性返回当前阴影偏移量X,

  • 我有一个关于嵌套列表投影界面用法的问题。我有两个实体(父和子)(它们有单向关联) 父级=> 子=> 我有两个选择特定列投影界面。 这个查询可以工作,但是它选择ChildEntity的所有列,并且只将id、name propeties映射到ChildProjection。(生成的查询选择所有列,但我想只选择id和name列) 我如何只选择id和name列(为嵌套列表投影界面选择特定列)并映射到Chi

  • 我理解为什么墨卡托投影的纬度是有限制的,但是根据我假设的理论,经度是[-180,180]呢。 然而,从几个地图应用程序的源代码中我看到了。他们试图将经度限制在[-177177]之间。 这是什么原因?