我正在绘制一个3x3的极坐标投影网格(看起来有点像雷达图)。
e.g。与此示例完全相同: https://matplotlib.org/examples/pylab_examples/polar_demo.html
我正在设法按预期绘制数据,但现在想要用变量缩放每个极坐标投影,以便某些圆圈比其他圆圈更大,如下图所示。
当我循环通过子图时,我需要将哪些命令应用于轴?
我尝试打开/关闭自动缩放功能。 gridspec.Gridspec()可能有效,但我不确定这是否是最好的解决方案,尽管它可能很好。 感谢
答案 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)
不太好的版本
您可以在创建时尝试设置不同的轴尺寸:
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