更改极坐标投影子图的大小

Change the size of subplots for polar projection

我正在绘制一个 3x3 的极坐标投影网格(看起来有点像雷达图)。

例如与本例完全一样: https://matplotlib.org/examples/pylab_examples/polar_demo.html

我设法按预期绘制数据,但现在想通过变量缩放每个极投影,以便一些圆比其他圆大,如下图所示。

当我循环遍历子图时,我需要对轴应用哪些命令?

我试过 on/off 自动缩放。 gridspec.Gridspec() 可能会起作用,但我不确定这是否是最佳解决方案,尽管它很可能是。 谢谢

问得好。

您也可以直接使用 fig.add_axes() 来获得连续的 space,您可以在其中放置绘图:

f = plt.figure()
ax = f.add_axes([0.05, 0.4, 0.2, 0.2], polar=True) # Left, Bottom, Width, Height
ax2 = f.add_axes([0.30, 0.2, 0.6, 0.6], polar=True)
r = np.arange(0, 2, 0.01)
theta = 2 * np.pi * r
ax.plot(theta, r)
ax2.plot(theta, r)


不太好的版本

您可以尝试在创建轴时设置不同的轴大小:

import numpy as np
import matplotlib.pyplot as plt

r = np.arange(0, 2, 0.01)
theta = 2 * np.pi * r

ax = plt.subplot2grid((2,3), (0,0), polar=True)
ax2 = plt.subplot2grid((2,3), (0,1), rowspan=2, colspan=2, polar=True)
ax.plot(theta, r)
ax2.plot(theta, r)

您可以拥有比 2x3 更大的网格,并且在图的大小上具有更多的粒度。

(不介意图形风格不同)

HTH