我使用 matplotlib 和 geopandas 来绘制地图。 现在我想在这张地图上绘制附加信息,例如使用雷达图或饼图。
我得到了这个贴心的功能,它可以为我创建雷达图
def radar_chart(ax, data, categories, color, label_fontsize=8):
N = len(categories)
angles = np.linspace(0, 2 * np.pi, N, endpoint=False).tolist()
data = np.concatenate((data, [data[0]]))
angles += [angles[0]]
ax.fill(angles, data, color=color, alpha=0.25)
ax.plot(angles, data, color=color, linewidth=2)
ax.set_xticks(angles[:-1])
ax.set_xticklabels(categories, fontsize=label_fontsize) # Schriftgröße anpassen
ax.yaxis.set_visible(False)
然而,这个尺寸不太方便,因为它们会覆盖我的大部分地图。但是,如果我将它们绘制得更小,它们看起来很荒谬,因为轴和标签之间的填充不成比例,特别是如果我使用调整后的字体大小。
有办法改变这个填充吗?
如果我无法指定此填充,我想我可能会以更大的尺寸绘制子图,因此子图中的比例看起来不错,然后将其缩小,以便它适合主图。
然而,我没能找到一种方法来做到这一点。一个困难可能是,scale 在 matplotlib 的上下文中比调整图像大小还有另一个含义......
我可以像缩小图像一样缩放子图吗?
第一个问题的答案:
ax.tick_params(pad=-3)
我想我错过了,显然我的“轴”不是轴,而是圆形 x 轴上的刻度。
这解决了问题,第二个问题现在就已经过时了。