Я пишу приложение, используя pandas DataFrames в Python 2.7. Мне нужно построить столбцы моих DataFrames в окне Tkinter. Я знаю, что я могу построить панда DataFrames столбцов, используя встроенный метод участка на DataFrame или сериях (это только обертка функции Matplotlib участка), например так:Python: Вставить участок панды в Tkinter GUI
import pandas as pd
df = pd.DataFrame({'one':[2,4,6,8], 'two':[3,5,7,9]})
df.plot('one')
Кроме того, я понял, как для построения графического окна Tkinter с использованием matplotlib:
import matplotlib
matplotlib.use('TkAgg')
from numpy import arange, sin, pi
from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg
from matplotlib.figure import Figure
import pandas as pd
import Tkinter as tk
import ttk
root = tk.Tk()
#-------------------------------------------------------------------------------
lf = ttk.Labelframe(root, text='Plot Area')
lf.grid(row=0, column=0, sticky='nwes', padx=3, pady=3)
f = Figure(figsize=(5,4), dpi=100)
a = f.add_subplot(111)
t = arange(0.0,3.0,0.01)
s = sin(2*pi*t)
a.plot(t,s)
dataPlot = FigureCanvasTkAgg(f, master=lf)
dataPlot.show()
dataPlot.get_tk_widget().grid(row=0, column=0)
#-------------------------------------------------------------------------------
root.mainloop()
Все это работает как ожидается. Я хочу сделать вывод pandas.DataFrame.plot() в окне Tkinter, например. в Labelframe, как указано выше. Я не могу заставить это работать. Если это возможно, я не хочу использовать инструменты построения matplotlibs, поскольку инструменты pandas plot подходят для моих потребностей намного лучше. Есть ли способ объединить pandas plot() с Tkinter? В принципе, вместо этой строки:
dataPlot = FigureCanvasTkAgg(f, master=lf)
dataPlot.show()
мне это нужно:
dataPlot = FigureCanvasTkAgg(df.plot('one'), master=lf)
dataPlot.show()
Большое спасибо, что небольшое изменение решить мою проблему. Если дело доходило до того, что я делал что-то вроде разброса, думаю, мне пришлось бы использовать функцию графика matplotlib, потому что нет объекта осей, который можно передать? – Alarik