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

时间:2017-08-17 08:49:45

标签: python matplotlib polar-coordinates

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

e.g。与此示例完全相同: https://matplotlib.org/examples/pylab_examples/polar_demo.html

我正在设法按预期绘制数据,但现在想要用变量缩放每个极坐标投影,以便某些圆圈比其他圆圈更大,如下图所示。 scale either by width/height or area

当我循环通过子图时,我需要将哪些命令应用于轴?

我尝试打开/关闭自动缩放功能。 gridspec.Gridspec()可能有效,但我不确定这是否是最好的解决方案,尽管它可能很好。 感谢

1 个答案:

答案 0 :(得分:3)

好问题。

您也可以直接使用fig.add_axes()创建一个连续的空间来放置您的地块:

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)

polar plot with different size

不太好的版本

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

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)

polar plot with different size

您可以拥有比2x3更大的网格,并且可以更精细地绘制绘图的大小。

(不要介意不同的图形样式)

HTH