如何检查 ax 是否是 matplotlib 中的极坐标投影?

How to check if ax is polar projection in matplotlib?

是否有来自 figax 的属性可以指示轴的投影是否为极坐标?

我正在尝试在我的一个更复杂的函数中创建一个基本的嵌套函数,它基本上具有以下功能:

is_polar(ax):
    return ax.some_attribute

不过,我不确定这是否可行 b/c 我已经查看了它的明显属性。我想在进行详尽的手动搜索之前,我会联系社区。

# Source | https://matplotlib.org/gallery/pie_and_polar_charts/polar_scatter.html
# Fixing random state for reproducibility
np.random.seed(19680801)

# Compute areas and colors
N = 150
r = 2 * np.random.rand(N)
theta = 2 * np.pi * np.random.rand(N)
area = 200 * r**2
colors = theta

fig = plt.figure()
ax = fig.add_subplot(111, projection='polar')
c = ax.scatter(theta, r, c=colors, s=area, cmap='hsv', alpha=0.75)

您可以根据 matplotlib axes docs 使用 ax.name 检查投影。这包含作为字符串的投影,因此您可以简单地执行

if ax.name == 'polar':
    # ....