PyCharm da AttributeError

'# The code for changing pages was derived from: http://stackoverflow.com/questions/7546050/switch-between-two-frames-in-tkinter

License: http://creativecommons.org/licenses/by-sa/3.0/

import matplotlib
matplotlib.use(“TkAgg”)
from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg, NavigationToolbar2Tk
from matplotlib.figure import Figure

import tkinter as tk
from tkinter import ttk

LARGE_FONT = (“Verdana”, 12)

class SeaofBTCapp(tk.Tk):

def __init__(self, *args, **kwargs):
    tk.Tk.__init__(self, *args, **kwargs)

    tk.Tk.iconbitmap(self)
    tk.Tk.wm_title(self, "Sea of BTC client")

    container = tk.Frame(self)
    container.pack(side="top", fill="both", expand=True)
    container.grid_rowconfigure(0, weight=1)
    container.grid_columnconfigure(0, weight=1)

    self.frames = {}

    for F in (StartPage, PageOne, PageTwo, PageThree):
        frame = F(container, self)

        self.frames[F] = frame

        frame.grid(row=0, column=0, sticky="nsew")

    self.show_frame(StartPage)

def show_frame(self, cont):
    frame = self.frames[cont]
    frame.tkraise()

class StartPage(tk.Frame):

def __init__(self, parent, controller):
    tk.Frame.__init__(self, parent)
    label = tk.Label(self, text="Start Page", font=LARGE_FONT)
    label.pack(pady=10, padx=10)

    button = ttk.Button(self, text="Visit Page 1",
                        command=lambda: controller.show_frame(PageOne))
    button.pack()

    button2 = ttk.Button(self, text="Visit Page 2",
                         command=lambda: controller.show_frame(PageTwo))
    button2.pack()

    button3 = ttk.Button(self, text="Graph Page",
                         command=lambda: controller.show_frame(PageThree))
    button3.pack()

class PageOne(tk.Frame):

def __init__(self, parent, controller):
    tk.Frame.__init__(self, parent)
    label = tk.Label(self, text="Page One!!!", font=LARGE_FONT)
    label.pack(pady=10, padx=10)

    button1 = ttk.Button(self, text="Back to Home",
                         command=lambda: controller.show_frame(StartPage))
    button1.pack()

    button2 = ttk.Button(self, text="Page Two",
                         command=lambda: controller.show_frame(PageTwo))
    button2.pack()

class PageTwo(tk.Frame):

def __init__(self, parent, controller):
    tk.Frame.__init__(self, parent)
    label = tk.Label(self, text="Page Two!!!", font=LARGE_FONT)
    label.pack(pady=10, padx=10)

    button1 = ttk.Button(self, text="Back to Home",
                         command=lambda: controller.show_frame(StartPage))
    button1.pack()

    button2 = ttk.Button(self, text="Page One",
                         command=lambda: controller.show_frame(PageOne))
    button2.pack()

class PageThree(tk.Frame):

def __init__(self, parent, controller):
    tk.Frame.__init__(self, parent)
    label = tk.Label(self, text="Graph Page!", font=LARGE_FONT)
    label.pack(pady=10, padx=10)

    button1 = ttk.Button(self, text="Back to Home",
                         command=lambda: controller.show_frame(StartPage))
    button1.pack()

    f = Figure(figsize=(5, 5), dpi=100)
    a = f.add_subplot(111)
    a.plot([1, 2, 3, 4, 5, 6, 7, 8], [5, 6, 1, 3, 8, 9, 3, 5])

    canvas = FigureCanvasTkAgg(f, self)
    canvas.show()
    canvas.get_tk_widget().pack(side=tk.BOTTOM, fill=tk.BOTH, expand=True)

    toolbar = NavigationToolbar2Tk(canvas, self)
    toolbar.update()
    canvas._tkcanvas.pack(side=tk.TOP, fill=tk.BOTH, expand=True)

app = SeaofBTCapp()
app.mainloop()’

AttributeError: ‘FigureCanvasTkAgg’ object has no attribute ‘show’ hatası alıyorum

Kullandığım versiyonlar
python 3.5
matplotlib 3.03
tkinter 8.6
PyCharm 2018.3.5

Merhaba. Bu PyCharm ile ilgili bir durum değil. show fonksiyonu yerine draw kullanmalıymışsınız.