如何在带有Python主题的国家/地区放置标签?

问题描述 投票:0回答:1

使用python3和cartopy,具有以下代码:

import matplotlib.pyplot as plt
import cartopy
import cartopy.io.shapereader as shpreader
import cartopy.crs as ccrs

ax = plt.axes(projection=ccrs.PlateCarree())
ax.add_feature(cartopy.feature.LAND)
ax.add_feature(cartopy.feature.OCEAN)
ax.add_feature(cartopy.feature.COASTLINE)
ax.add_feature(cartopy.feature.BORDERS, linestyle='-', alpha=.5)
ax.add_feature(cartopy.feature.LAKES, alpha=0.95)
ax.add_feature(cartopy.feature.RIVERS)

ax.set_extent([-150, 60, -25, 60])

shpfilename = shpreader.natural_earth(resolution='110m',
                                      category='cultural',
                                      name='admin_0_countries')

reader = shpreader.Reader(shpfilename)
countries = reader.records()

for country in countries:
    if country.attributes['SOVEREIGNT'] == "Bulgaria":
        ax.add_geometries(country.geometry, ccrs.PlateCarree(), facecolor=(0, 1, 0), label = "A")
    else:
        ax.add_geometries(country.geometry, ccrs.PlateCarree(), facecolor=(1, 1, 1), label = country.attributes['SOVEREIGNT'])
plt.rcParams["figure.figsize"] = (50,50)
plt.show()

我明白了:

enter image description here

问题:为了在保加利亚(或我在country.attributes['SOVEREIGNT']中引用的任何其他国家/地区)上方显示红色的“ A”,我该怎么写?目前,该标签根本没有显示,我不确定如何更改标签的字体。因此,似乎以下内容仅更改了颜色,而没有添加标签:

ax.add_geometries(country.geometry, ccrs.PlateCarree(), facecolor=(0, 1, 0), label = "A")
python pandas numpy dataframe cartopy
1个回答
1
投票

您可以检索几何图形的质心并在该位置绘制文本:

© www.soinside.com 2019 - 2024. All rights reserved.