Есть ли простой способ преобразовать Tkinter в matplotlib?

#python #matplotlib #tkinter

#python #matplotlib #tkinter

Вопрос:

Мне нужно изменить следующий код, чтобы вывести гистограмму населенностей кластера. Вкратце, он сохраняет все значения в массивах numpy, а затем выводит гистограмму (с указанием количества конформаций в каждом кластере по Y и некоторого внутреннего значения кластера (энергии) по X) с использованием модуля Tkinter, что кажется не очень практичным решением..

 r = Tkinter.Tk()
        dataList = []
        reverseList = []
        rLctr = 0
        confL = d.ch.conformations
        e = d.clusterer.energy_used
        #for l in mol.cluSEQ:
        for l in d.clusterer.clustering_dict[cut_off]:
            dataList.append([l[0].energy, len(l)])
            reverseList.append(range(rLctr, rLctr len(l)))
        mol.elist = numpy.array(elist)
        mol.r = [numpy.minimum.reduce(mol.elist), 
                    numpy.maximum.reduce(mol.elist)]
        mol.nbins = Tkinter.IntVar()
        mol.nbins.set(10)
        mol.min = Tkinter.StringVar()
        mol.min.set(str(mol.r[0]))
        mol.max = Tkinter.StringVar()
        mol.max.set(str(mol.r[1]))
    
        r = (float(mol.min.get()), float(mol.max.get()))
        mol.ehist = HistogramRI(mol.elist,mol.nbins.get(),range=r)
        mol.ehist.createReverseIndex()
        nodeList = mol.ehist.array
        tstr = mol.name   ' histogram'
        top = Tkinter.Toplevel()
        top.title(tstr)
        mol.ehist
        #top = Tkinter.Toplevel()
        xlabel = 'ENERGY'  'clusterized with '   str(cut_off)   'A'
        mol.clustNB = InteractiveHistogramGraph(mol.name,
                master=top, nodeList = dataList, reverseIndex=reverseList,
                xlabel_text=xlabel, 
                ylabel_text='#nCnOnNnFnOnRnMnAnTnInOnNnS')
        mol.clustNB.draw.update()
        mol.clustNB.draw.postscript({'file':outputfilename, 'colormode':'color'})
        top.update_idletasks()
 

Не могли бы вы предложить мне простой способ преобразовать его в библиотеку matplot, чтобы я мог контролировать все параметры печати?

Комментарии:

1. Наверное, быстрее начинать с нуля!

2. На самом деле, я уже видел много обратных тем, когда люди спрашивали, как интегрировать mat-plot lib в интерфейс tkinter, поэтому я подумал, что это может быть тривиальной задачей, связанной с простыми графиками…

3. Тривиально создать простую гистограмму matplotlib — также тривиально встроить холст matplotlib в фрейм tkinter — совсем не тривиально перепроектировать какой-то рисунок на холсте tkinter и адаптировать его к matplotlib… Ваш лучший подход, вероятно, заключается в извлечении данных и воссоздании диаграммы matplotlib (выбросьте биты tkinter).