Подзаголовок Matplotlib в окне графического интерфейса Tkinter

Я работаю над графическим интерфейсом Tkinter, и мне было интересно, можно ли поместить подзаголовок в графический интерфейс Tkinter. Любая помощь будет оценена по достоинству, поскольку я в настоящее время понятия не имею.

import pandas.io.data as web
import matplotlib.pyplot as plt
import datetime

start = datetime.datetime(2010, 1, 1)
end = datetime.datetime(2014, 8, 3)

google = web.DataReader("GOOG", 'yahoo', start, end )

ax1 = plt.subplot2grid((4,4), (0,0), colspan=4)
ax2 = plt.subplot2grid((4,4), (1,0), colspan=2)

top = plt.subplot2grid((4,4), (0, 0), rowspan=3, colspan=4)
top.plot(google.index, google["Close"])
plt.title('Google Stock Price from 2007 - 2012')

bottom = plt.subplot2grid((4,4), (3,0), rowspan=1, colspan=4)
bottom.bar(google.index, google['Volume'])
plt.title('Google Trading Volume in Millions')

plt.gcf().set_size_inches(15,8)
plt.show()

Я работаю с чем-то вокруг этого, но я не смог поместить его в графический интерфейс без того, чтобы это было совершенно отдельное окно.

self.root2= Tk()
self.root2.geometry("600x400")
self.root2.title("Stock Visualization")
frame = Frame(self.root2)
frame.grid(row=2,column=0, sticky="s")
frame2 = Frame(self.root2)
frame2.grid(row=0,column=0, sticky = "n")
##        self.canvas=Canvas(self.root2, width=300, height=300, background='white')
##        self.canvas.grid(row=1,column=0, columnspan = 4)

Это часть рамы, без всяких надписей и прочего вокруг. У меня есть этот холст, прокомментированный, где я хотел бы, чтобы подсюжет шел.


person Timothy Li    schedule 03.08.2014    source источник
comment
Вы видели matplotlib.org/examples/user_interfaces/embedding_in_tk.html? Я хотел бы указать что если вы используете серверную часть TkAgg, вы используете встраивание в tk   -  person tacaswell    schedule 05.08.2014
comment
Я понимаю. поэтому он вызывает его на Canvas. У вас есть идеи, как я могу включить это в Pandas Data Reader и тому подобное?   -  person Timothy Li    schedule 05.08.2014


Ответы (1)


Это может быть немного поздно, но вы должны попробовать что-то вроде этого

     fig = Figure(figsize=(5,4), dpi = 100)
     ax = fig.add_subplot(111)
     figcanvas = FigureCanvasTkAgg(fig, master = root)
     plotthis(figcanvas, ax)#in this example plotthis is a function that plots the figure, ax being a graph, and figcanvas being the canvas of which the graph is being plotted to.
     figcanvas.get_tk_widget().grid()

Небольшое предупреждение: я не думаю, что этот метод работает в 3, поэтому на данный момент я бы просто сделал это в 2, если это вообще возможно. Не знаю, почему это не работает в 3. Надеюсь, это поможет :)

person Brandon Hatch    schedule 19.01.2016