#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).