In this PyQtChart article iam going to show you How to Create LineChart in PyQt5. we are going to use PyQtChart library for this article, so PyQtChart is a set of Python bindings for The Qt Company’s Qt Charts library. The bindings sit on top of PyQt5 and are implemented as a single module, The commercial version of PyQtChart is bundled with the commercial version of PyQt. also in the first article we have learned how you can create barcharts in PyQt5 and we have talked about installation process of QtChart , you can check that article in the below link.
Read PyQtChart More Articles
1: PyQtChart How to Create BarChart in PyQt5
Also you can check more Python GUI articles in the below links.
1: Kivy GUI Development Tutorials
2: Python TKinter GUI Development
5: PyQt5 GUI Development Course
What are LineCharts ?
These charts are typically presented as a series of points/markers that are connected by lines.
In a line chart, the points are connected by straight lines to show the changes of the variables
over a period of time.
So now this is the complete code for PyQtChart How to Create LineChart in PyQt5.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 |
from PyQt5.QtWidgets import QApplication, QMainWindow import sys from PyQt5.QtChart import QChart, QChartView, QLineSeries from PyQt5.QtCore import QPointF from PyQt5.QtGui import QPainter from PyQt5.QtCore import Qt class Window(QMainWindow): def __init__(self): super().__init__() self.setWindowTitle("PyQtChart Line") self.setGeometry(100,100, 680,500) self.show() self.create_linechart() def create_linechart(self): series = QLineSeries(self) series.append(0,6) series.append(2, 4) series.append(3, 8) series.append(7, 4) series.append(10, 5) series << QPointF(11, 1) << QPointF(13, 3) << QPointF(17, 6) << QPointF(18, 3) << QPointF(20, 2) chart = QChart() chart.addSeries(series) chart.createDefaultAxes() chart.setAnimationOptions(QChart.SeriesAnimations) chart.setTitle("Line Chart Example") chart.legend().setVisible(True) chart.legend().setAlignment(Qt.AlignBottom) chartview = QChartView(chart) chartview.setRenderHint(QPainter.Antialiasing) self.setCentralWidget(chartview) App = QApplication(sys.argv) window = Window() sys.exit(App.exec_()) |
So in the above code first of all we have imported our required classes form QtChart and PyQt5, QChart and QChartView are both essential for working of Charts in PyQt5, also we have imported QLineSeries . after that we have created our Window class that extends from QMainWindow, and we have added our window title and window geometry in this class also we have called our create_linechart() method.
1 2 3 4 5 6 7 8 9 10 |
class Window(QMainWindow): def __init__(self): super().__init__() self.setWindowTitle("PyQtChart Line") self.setGeometry(100,100, 680,500) self.show() self.create_linechart() |
These are the data for our QLineSeries , also we have created the object of QLineSeries in here.
1 2 3 4 5 6 7 8 |
series = QLineSeries(self) series.append(0,6) series.append(2, 4) series.append(3, 8) series.append(7, 4) series.append(10, 5) series << QPointF(11, 1) << QPointF(13, 3) << QPointF(17, 6) << QPointF(18, 3) << QPointF(20, 2) |
OK now i have said that when you want to create some kind of charts in PyQtChart, creating of QChart and QChartView are important for every kind of charts. and now first we create our QChart object and we add our series to QChart object and we set a title with animation for our QChart.
1 2 3 4 5 6 |
chart = QChart() chart.addSeries(series) chart.createDefaultAxes() chart.setAnimationOptions(QChart.SeriesAnimations) chart.setTitle("Line Chart Example") |
If you want legends for your chart than add these line of codes.
1 2 |
chart.legend().setVisible(True) chart.legend().setAlignment(Qt.AlignBottom) |
And at the end we create our QChartView and we add our QChart object in our ChartView.
1 2 |
chartview = QChartView(chart) chartview.setRenderHint(QPainter.Antialiasing) |
Also we need to make chartview as centeral widget of our window, if we don’t do this, there
will not be any chart in the window.
1 |
self.setCentralWidget(chartview) |
Also every PyQt5 application must create an application object. The sys.argv
parameter is a
list of arguments from a command line.
1 |
App = QApplication(sys.argv) |
Finally, we enter the mainloop of the application. The event handling starts from this point.
The mainloop receives events from the window system and dispatches them to the
application widgets.
1 2 |
window = Window() sys.exit(App.exec_()) |
So now run the complete code and this will be the result.
Also you can watch the complete video for this article.
Subscribe and Get Free Video Courses & Articles in your Email
Thanks for this article Parwiz, its good!
Your welcome