更改极坐标投影子图的大小
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
我正在绘制一个 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