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

Geopandas-地图和locaton绘图

裴姚石
2023-03-14

多亏了这个问题的答案,我可以用不同的投影画出地球仪世界地图上的大陆和海洋。

现在我想补充几点,例如geopandas中包含的城市

cities = gpd.read_file(gpd.datasets.get_path('naturalearth_cities'))

不幸的是,这些城市被充满的大陆所覆盖。有没有办法让这些城市在地图的前面或上面?

我当前的代码如下:

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

crs1 = ccrs.NorthPolarStereo()

world = gpd.read_file(gpd.datasets.get_path("naturalearth_lowres"))
cities = gpd.read_file(gpd.datasets.get_path('naturalearth_cities'))

w1 = world.to_crs(crs1.proj4_init)
c1 = cities.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')

# this adds the cities
c1.plot(ax=ax1, marker='o', color='red', markersize=50)

结果如下所示:

共有1个答案

汤洋
2023-03-14

轴的默认绘图顺序为面片、线、文本。此顺序由zorder属性确定。

Polygon/patch,  zorder=1
Line 2D,  zorder=2
Text,  zorder=3

您可以通过设置zorder来更改单个地图功能的顺序。任何单独的plot()调用都可以为该特定项的zorder设置值。

在您的情况下,代码

c1.plot(ax=ax1, marker='o', color='red', markersize=50, zorder=20)

将在所有其他具有zorder小于20的功能的顶部绘制标记。

Zorder演示:https://matplotlib.org/gallery/misc/zorder_demo.html

 类似资料:
  • 我有一个gejson文件,它由覆盖着六边形多边形的纽约市组成,我把它读进了geopandas数据框。我希望在数据框的图中添加Stmen TonerLite底图。但是,我无法复制与这里的工作示例相同的结果-https://geopandas.org/gallery/plotting_basemap_background.html 我在下面给出了相关数据帧的代码和crs的一个小示例: 我得到了一个没有

  • 我有一个小csv,它有来自英格兰伯明翰的6个坐标。我用pandas读取csv,然后将其转换为GeoPandas数据帧,用形状优美的点更改纬度和经度列。我现在正试图绘制我的GeoDataframe,我能看到的只是点。我怎样才能把伯明翰地图也画出来?如能提供有关GeoPandas的良好文档资料,也将不胜感激。

  • 添加地标 添加地标        点击菜单栏或底下快捷工具栏中的“添加地标”按钮,按照弹出的对话框,在当前地图的中心添加一个地标来标注位置。        绘制完成后弹出属性对话框,可在“说明”栏里查看并修改对于该地标的说明。        可在“空间信息”栏里填写地标的定位信息,有小数格式、度分秒格式、度分格式三种输入方式。        可在“样式”栏里修改图标风格(图标样式、颜色、大小、透明

  • 添加地标 添加地标        点击菜单栏或底下快捷工具栏中的“添加地标”按钮,按照弹出的对话框,在当前地图的中心添加一个地标来标注位置。        绘制完成后弹出属性对话框,可在“说明”栏里查看并修改对于该地标的说明。        可在“空间信息”栏里填写地标的定位信息,有小数格式、度分秒格式、度分格式三种输入方式。        可在“样式”栏里修改图标风格(图标样式、颜色、大小、透明

  • 问题内容: 我试过了 但它产生错误: 任何的想法? 问题答案: 好吧,错误消息很清楚:不是实体。如果要映射基本元素的集合,请使用批注(来自Hibernate)或批注(来自JPA 2.0)。 因此,假设您使用的是Hibernate Annotations 3.4,请尝试以下操作: 或者,使用泛型时: 如果您使用的是Hibernate Annotations 3.5+,则更喜欢JPA 2.0注释: 或

  • 最新代码-http://jsfidle.net/ysqdh/88/- 这个版本使用gDouglasPeuker从绘制的版本中创建一个rudamentary多边形形状-http://jsfiddle.net/ysqdh/94/ ^这将禁用用于绘制的映射,并在创建形状后再次启用该映射。 我正在开发一个谷歌地图应用程序。而不是多边形点击练习。我想要能够画一个形状-然后转换成一个多边形。 下面是我的最新应