将标签移至 pyplot“radar_chart”上靠近“axis”的位置

问题描述 投票:0回答:1

我使用 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)

只要雷达图相当大,看起来就相当不错。
large radar chart

然而,这个尺寸不太方便,因为它们会覆盖我的大部分地图。但是,如果我将它们绘制得更小,它们看起来很荒谬,因为轴和标签之间的填充不成比例,特别是如果我使用调整后的字体大小。

enter image description here

有办法改变这个填充吗?

如果我无法指定此填充,我想我可能会以更大的尺寸绘制子图,因此子图中的比例看起来不错,然后将其缩小,以便它适合主图。

然而,我没能找到一种方法来做到这一点。一个困难可能是,scale 在 matplotlib 的上下文中比调整图像大小还有另一个含义......

我可以像缩小图像一样缩放子图吗?

python matplotlib
1个回答
0
投票

第一个问题的答案:

  ax.tick_params(pad=-3)

我想我错过了,显然我的“轴”不是轴,而是圆形 x 轴上的刻度。

这解决了问题,第二个问题现在就已经过时了。

© www.soinside.com 2019 - 2024. All rights reserved.