
# Create toolbar, passing canvas as first parament, parent (self, the MainWindow) as second. The complete code, importing the toolbar widget NavigationToolbar2QT and adding it to the interface within a QVBoxLayout, is shown below -įrom PyQt5 import QtCore, QtGui, QtWidgetsįrom _qt5agg import FigureCanvasQTAgg, NavigationToolbar2QT as NavigationToolbar In this section we'll look at adding these controls so we can zoom, pan and get data from embedded Matplotlib plots. This can be controlled through a custom toolbar which can be added to your applications alongside the plot. However, support for handling Qt mouse events and transforming them into interactions on the plot is built into Matplotlib. The effect of this architecture is that Qt is unaware of the positions of lines and other plot elements - only the x, y coordinates of any clicks and mouse movements over the widget. The FigureCanvasQTAgg class wraps this backend and displays the resulting image on a Qt widget. Plots from Matplotlib displayed in PyQt5 are actually rendered as simple (bitmap) images by the Agg backend. plot method.īasic plot with embedded Matplotlib Plot controls The plotted data, is provided as two lists of numbers (x and y respectively) as required by the. This means it will take up the entirety of the window and resize together with it. In this case we're adding our MplCanvas widget as the central widget on the window with. Sc = MplCanvas(self, width=5, height=4, dpi=100) # which defines a single set of axes as self.axes. # Create the maptlotlib FigureCanvas object, Super(MainWindow, self)._init_(*args, **kwargs)
#Pycharm matplotlib install
If not you can install it as normal using Pip, with the following -įrom _qt5agg import FigureCanvasQTAggĭef _init_(self, parent=None, width=5, height=4, dpi=100):įig = Figure(figsize=(width, height), dpi=dpi) The following examples assume you have Matplotlib installed.

There is a pandas example at the end of this tutorial. These plots can be embedded in PyQt5 in the same way shown here, and the reference to the axes passed when plotting. Many other Python libraries - such as seaborn and pandas- make use of the Matplotlib backend for plotting.
#Pycharm matplotlib how to
In this tutorial we'll cover how to embed Matplotlib plots in your PyQt applications If you're migrating an existing data analysis tool to a Python GUI, or if you simply want to have access to the array of plot abilities that Matplotlib offers, then you'll want to know how to include Matplotlib plots within your application. However, there is another plotting library for Python which is used far more widely, and which offers a richer assortment of plots - Matplotlib. PyQtGraph uses the Qt vector-based QGraphicsScene to draw plots and provides a great interface for interactive and high performance plotting. In a previous tutorial we covered plotting in PyQt5 using PyQtGraph.
