Matplotlib单选按钮缩放

3 投票
1 回答
1199 浏览
提问于 2025-04-18 08:17

我的起点是这个链接中的代码:

小部件示例代码:radio_buttons.py

所有的示例中都有很少的单选按钮。我需要更多的,比如说最多25个。我对代码进行了调整,改变了坐标轴的高度,以便放下更多的按钮:

rax = plt.axes([0.05, 0.1, 0.15, 0.7], axisbg=axcolor)
radio3 = RadioButtons(rax, ('B1', 'B2', 'B3', 'B4', 'B5','B6', 'B7', 'B8', 'B9', 'B10'))

但是这些按钮开始重叠了,增加坐标轴的高度只是让它们变得更大,并没有解决重叠的问题。

我可以通过创建多个单独的单选按钮组来达到我想要的效果,但这样我就需要多个点击回调函数。

所以问题是,我能否调整单选按钮的大小以避免重叠,还是说这个大小是固定的,而这个按钮的数量是超出了最初设计的范围?

1 个回答

0

你可以传递两个选项来控制文本和单选按钮。

labels
    A list of matplotlib.text.Text instances
circles
    A list of matplotlib.patches.Circle instances

你可以选择不传递

('B1', 'B2', 'B3', 'B4', 'B5','B6', 'B7', 'B8', 'B9', 'B10')

如果你只关心文本的话,可以把每个列表元素改成类似这样的:

matplotlib.text.Text(text='B1',fontproperties={'size':12})

如果你在意圆圈的大小,那就传递类似这样的内容:

circles = matplotlib.patches.Circle((0,0), radius=5)

我个人建议让圆圈自己处理,只需要改变文本就可以了。

撰写回答