'Problem using qt5agg in python matplotlib: Window not displaying anything

I want to display charts using matplotlib's qt5agg backend. The tutorial's code runs fine:

import sys
import numpy as np
from matplotlib.backends.qt_compat import QtCore, QtWidgets
from matplotlib.backends.backend_qt5agg import (
    FigureCanvas, NavigationToolbar2QT as NavigationToolbar)
from matplotlib.figure import Figure


class ApplicationWindow(QtWidgets.QMainWindow):
    def __init__(self):
        super().__init__()
        self._main = QtWidgets.QWidget()
        self.setCentralWidget(self._main)
        layout = QtWidgets.QVBoxLayout(self._main)
        static_canvas = FigureCanvas(Figure(figsize=(5, 3)))
        layout.addWidget(static_canvas)
        self._static_ax = static_canvas.figure.subplots()
        t = np.linspace(0, 10, 501)
        self._static_ax.plot(t, np.tan(t), ".")


if __name__ == "__main__":
    qapp = QtWidgets.QApplication(sys.argv)
    app = ApplicationWindow()
    app.show()
    qapp.exec_()

It shows a perfect chart. But the code I've written looks similar, fails to run: no exeption was raised, but no chart showed. Just a blank window. Here's my code:

import numpy
from matplotlib.pyplot import Figure
from matplotlib.backends.backend_qt5agg import (
        FigureCanvas, NavigationToolbar2QT as NavigationToolbar)
from matplotlib.backends.qt_compat import QtWidgets, QtGui
import sys

class MyWindow(QtWidgets.QWidget):
        def __init__(self):
                super().__init__()
                self.grid = QtWidgets.QGridLayout()
                self.canvas = FigureCanvas(Figure(figsize=(3, 2)))
                self.grid.addWidget(self.canvas, 0, 0)
                self.canvas_fig = self.canvas.figure.subplots()
                self.canvas_fig.plot([1, 2, 3, 4, 5], [0., 1., 2., 3., 4.])

if __name__ == "__main__":
    qapp = QtWidgets.QApplication()
    app = MyWindow()
    app.show()
    qapp.exec_()

It runs like this: blank window What's wrong with this code? How to run it successfully?

Can anyone help me?



Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source