【问题标题】:Matplotlib widget - many radiobuttons issueMatplotlib 小部件 - 许多单选按钮问题
【发布时间】:2013-05-10 14:25:13
【问题描述】:

我需要设置 matplotlib 小部件的高度,更改对齐方式或更改字体,但我不知道如何。

截图:

5 个单选按钮:

15 个单选按钮:

这里是关键代码部分:

def evolvecallback_(self, notification):
    global i
    stats={}
    results=[]
    fitnesses=[]

    for code,fit in evolve(i):
        results.append(code)
        stats[str(fit)]=code
        fitnesses.append(str(fit))
    i+=1
    fig = plt.figure() 
    done=""

    if found():
        done=" - Solution found!"
        print "Done!"

    fig.canvas.set_window_title("Generation "+str(i)+". - Best migrating individuals"+done) 


    ax = plt.subplot(111)
    ax.set_title(stats[str(fitnesses[0])])
    l, = ax.plot(x, s0, lw=2, color='blue')
    plt.subplots_adjust(left=0.4)

    axcolor = 'lightgoldenrodyellow'
    rax = plt.axes([0.05, 0.7, 0.15, 0.15], axisbg=axcolor)

    radio = RadioButtons(rax, tuple(fitnesses))
    def change(label):
        hzdict = {}
        x = np.arange(-5.0, 5.0, 0.01)
        j=0
        for i in tuple(results):
            hzdict[fitnesses[j]]=eval(i)
            j+=1
        ax.set_title(stats[str(label)])
        ydata = hzdict[str(label)]
        l.set_ydata(ydata)
        plt.draw()
    radio.on_clicked(change)
    plt.show()

【问题讨论】:

  • 你解决了吗?

标签: python matplotlib


【解决方案1】:

这条线设置了单选按钮绘制到的轴的位置和大小是:

rax = plt.axes([0.05, 0.7, 0.15, 0.15], axisbg=axcolor)

改成类似

rax = plt.axes([0.05, 0.3, 0.15, 0.5], axisbg=axcolor)

(doc)

需要明确的是,rax 只是一个 axes 对象,您要向其中添加单选按钮小部件。

【讨论】:

  • 嗨,我也遇到了同样的问题(这个人也是如此:stackoverflow.com/questions/23997920/…)。我认为这可能是一个错误。我试过调整轴,rax,但无济于事。它最终会奇怪地扭曲单选按钮。您知道解决方案/解决方法吗?
  • @Jean-Luc 谢谢你在这件事上踢我。这看起来是按钮的制作方式(绘制为圆圈)和轴的纵横比的问题。
  • 是的!这正是我的想法。你知道这是否是一个错误,或者是否有其他方法可以正确扩展所有内容?我应该提交错误报告还是...?
  • 是的,请提交错误报告,按钮参数化得不是很好。
  • @tacaswell 你知道stackoverflow.com/questions/55095111/…的答案吗
猜你喜欢
  • 1970-01-01
  • 2018-01-23
  • 2014-06-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-12-30
  • 2014-12-30
相关资源
最近更新 更多