如何在底图背景上绘制不透明饼图?
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)
这会将地图的图层置于饼图下方。
我想使用 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)
这会将地图的图层置于饼图下方。