如何在底图背景上绘制不透明饼图?

How to plot a opaque pie chart on top of a Basemap background?

我想使用 Basemap 和 plt.pie 在地图上绘制饼图。最后我想要的是,饼图覆盖了重叠的国家/地区 borders/coastlines。但是,生成的饼图是透明的,即我仍然可以在饼图下方看到国家 borders/coastlines。下面是结果图。

我以为是饼图透明的缘故,所以设置了wedgeprops={'alpha':1},结果饼图还是透明的

对我应该做什么有什么想法吗?谢谢。

我的代码如下:

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

m = Basemap(
        projection='cyl', 
        llcrnrlon=-10,
        llcrnrlat=50,
        urcrnrlon=5,
        urcrnrlat=60,
        resolution='l')

m.drawcountries()
m.drawcoastlines()


attributes = [1,5,2]

a = plt.pie(
    attributes,
    center=(m(-2.78, 53.98)), 
    colors = ["tab:purple", "tab:blue", "tab:red"],
    # wedgeprops={'alpha':1},
    radius= 2)
    

axis = plt.gca()
axis.set_xlim([-10, 5]) 
axis.set_ylim([50, 60])

您需要正确设置zorder

m.drawcountries(zorder=-10)
m.drawcoastlines(zorder=-11)

这会将地图的图层置于饼图下方。