6

我已经尝试了几个小时来正确地获得一个简单的单选按钮列表的大小和纵横比,但没有成功。最初,导入模块:

import matplotlib.pyplot as plt
from matplotlib.widgets import RadioButtons

然后创建实际的单选按钮:

plt.figure()
rax = plt.axes([0.1, 0.1, 0.6, 0.6], frameon=True)
labels = [str(i) for i in range(10)]
radio = RadioButtons(rax, labels)

这会导致椭圆形单选按钮太大,因此会在垂直方向上相互重叠。 在此处输入图像描述

如果我使用 plt.axes 的“方面”参数并将其设置为“等于”:

plt.figure()
rax = plt.axes([0.1, 0.1, 0.6, 0.6], frameon=True, aspect='equal')
labels = [str(i) for i in range(10)]
radio = RadioButtons(rax, labels)

然后我得到了单选按钮的实际圆圈,但它们仍然太大。 在此处输入图像描述

如果我仍然使用设置为 'equal' 的 'aspect' 参数将高度降低到 0.3,我只会得到先前结果的较小版本(较小的按钮但仍然在较小的轴实例中重叠)。

我真正想做的是有一个非常窄的宽度和一个很大的高度,并且仍然有不重叠的圆形单选按钮:

plt.figure()
rax = plt.axes([0.1, 0.1, 0.2, 0.8], frameon=True)
labels = [str(i) for i in range(10)]
radio = RadioButtons(rax, labels)

但这会生成垂直椭圆形的单选按钮: 在此处输入图像描述

我怎么解决这个问题?

4

2 回答 2

5
plt.figure()
rax = plt.axes([0.1, 0.1, 0.6, 0.6], frameon=True ,aspect='equal')
labels = [str(i) for i in range(10)]
radios = RadioButtons(rax, labels)
for circle in radios.circles: # adjust radius here. The default is 0.05
    circle.set_radius(0.02)
plt.show()

然后你会得到附图。在此处输入图像描述

于 2016-04-09T17:42:39.593 回答