From b8fe2b9727aaee098828bb66c05f915de82000a1 Mon Sep 17 00:00:00 2001 From: Irony <892768447@qq.com> Date: Wed, 2 Oct 2019 14:15:37 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0Qt=20Chart=E4=BE=8B=E5=AD=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- QChart/AreaChart.py | 75 ++++++++++++++++ QChart/BarChart.py | 80 ++++++++++++++++++ QChart/HorizontalBarChart.py | 80 ++++++++++++++++++ QChart/HorizontalPercentBarChart.py | 80 ++++++++++++++++++ QChart/PercentBarChart.py | 80 ++++++++++++++++++ QChart/PieChart.py | 55 ++++++++++++ QChart/README.md | 42 +++++++++ QChart/ScreenShot/AreaChart.png | Bin 0 -> 12327 bytes QChart/ScreenShot/BarChart.png | Bin 0 -> 13948 bytes QChart/ScreenShot/HorizontalBarChart.png | Bin 0 -> 12470 bytes .../ScreenShot/HorizontalPercentBarChart.png | Bin 0 -> 11324 bytes QChart/ScreenShot/PercentBarChart.png | Bin 0 -> 9348 bytes QChart/ScreenShot/PieChart.png | Bin 0 -> 14849 bytes QChart/ScreenShot/SplineChart.png | Bin 0 -> 16691 bytes QChart/SplineChart.py | 57 +++++++++++++ README.md | 7 ++ 16 files changed, 556 insertions(+) create mode 100644 QChart/AreaChart.py create mode 100644 QChart/BarChart.py create mode 100644 QChart/HorizontalBarChart.py create mode 100644 QChart/HorizontalPercentBarChart.py create mode 100644 QChart/PercentBarChart.py create mode 100644 QChart/PieChart.py create mode 100644 QChart/ScreenShot/AreaChart.png create mode 100644 QChart/ScreenShot/BarChart.png create mode 100644 QChart/ScreenShot/HorizontalBarChart.png create mode 100644 QChart/ScreenShot/HorizontalPercentBarChart.png create mode 100644 QChart/ScreenShot/PercentBarChart.png create mode 100644 QChart/ScreenShot/PieChart.png create mode 100644 QChart/ScreenShot/SplineChart.png create mode 100644 QChart/SplineChart.py diff --git a/QChart/AreaChart.py b/QChart/AreaChart.py new file mode 100644 index 0000000..9e2d022 --- /dev/null +++ b/QChart/AreaChart.py @@ -0,0 +1,75 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +""" +Created on 2019/10/2 +@author: Irony +@site: https://pyqt5.com , https://github.com/892768447 +@email: 892768447@qq.com +@file: AreaChart +@description: 区域图表 +""" +from PyQt5.QtChart import QChartView, QChart, QLineSeries, QAreaSeries +from PyQt5.QtCore import QPointF +from PyQt5.QtGui import QColor, QGradient, QLinearGradient, QPainter, QPen + + +class Window(QChartView): + + def __init__(self, *args, **kwargs): + super(Window, self).__init__(*args, **kwargs) + self.resize(400, 300) + # 抗锯齿 + self.setRenderHint(QPainter.Antialiasing) + + # 图表 + chart = QChart() + self.setChart(chart) + # 设置标题 + chart.setTitle('Simple areachart example') + # 添加Series + chart.addSeries(self.getSeries()) + # 创建默认轴线 + chart.createDefaultAxes() + # 设置xy轴的范围 + chart.axisX().setRange(0, 20) + chart.axisY().setRange(0, 10) + + def getSeries(self): + # 创建Series + series0 = QLineSeries(self) + series1 = QLineSeries(self) + + # 添加数据 + series0 << QPointF(1, 5) << QPointF(3, 7) << QPointF(7, 6) << QPointF(9, 7) \ + << QPointF(12, 6) << QPointF(16, 7) << QPointF(18, 5) + series1 << QPointF(1, 3) << QPointF(3, 4) << QPointF(7, 3) << QPointF(8, 2) \ + << QPointF(12, 3) << QPointF(16, 4) << QPointF(18, 3) + + # 创建区域图 + series = QAreaSeries(series0, series1) + series.setName('Batman') + + # 画笔 + pen = QPen(0x059605) + pen.setWidth(3) + series.setPen(pen) + + # 设置画刷 + gradient = QLinearGradient(QPointF(0, 0), QPointF(0, 1)) + gradient.setColorAt(0.0, QColor(0x3cc63c)) + gradient.setColorAt(1.0, QColor(0x26f626)) + gradient.setCoordinateMode(QGradient.ObjectBoundingMode) + series.setBrush(gradient) + + return series + + +if __name__ == '__main__': + import sys + from PyQt5.QtWidgets import QApplication + + app = QApplication(sys.argv) + w = Window() + w.show() + sys.exit(app.exec_()) diff --git a/QChart/BarChart.py b/QChart/BarChart.py new file mode 100644 index 0000000..73bd762 --- /dev/null +++ b/QChart/BarChart.py @@ -0,0 +1,80 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +""" +Created on 2019/10/2 +@author: Irony +@site: https://pyqt5.com , https://github.com/892768447 +@email: 892768447@qq.com +@file: BarChart +@description: 柱状图表 +""" +from PyQt5.QtChart import QChartView, QChart, QBarSet, QBarSeries, QBarCategoryAxis +from PyQt5.QtCore import Qt +from PyQt5.QtGui import QPainter + + +class Window(QChartView): + + def __init__(self, *args, **kwargs): + super(Window, self).__init__(*args, **kwargs) + self.resize(400, 300) + # 抗锯齿 + self.setRenderHint(QPainter.Antialiasing) + + # 图表 + chart = QChart() + self.setChart(chart) + # 设置标题 + chart.setTitle('Simple barchart example') + # 开启动画效果 + chart.setAnimationOptions(QChart.SeriesAnimations) + # 添加Series + series = self.getSeries() + chart.addSeries(series) + # 分类 + categories = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun'] + # 分类x轴 + axis = QBarCategoryAxis() + axis.append(categories) + # 创建默认轴线 + chart.createDefaultAxes() + # 替换默认x轴 + chart.setAxisX(axis, series) + # 显示图例 + chart.legend().setVisible(True) + chart.legend().setAlignment(Qt.AlignBottom) + + def getSeries(self): + # 创建5个柱子 + set0 = QBarSet('Jane') + set1 = QBarSet('John') + set2 = QBarSet('Axel') + set3 = QBarSet('Mary') + set4 = QBarSet('Samantha') + + # 添加数据 + set0 << 1 << 2 << 3 << 4 << 5 << 6 + set1 << 5 << 0 << 0 << 4 << 0 << 7 + set2 << 3 << 5 << 8 << 13 << 8 << 5 + set3 << 5 << 6 << 7 << 3 << 4 << 5 + set4 << 9 << 7 << 5 << 3 << 1 << 2 + + # 创建柱状条 + series = QBarSeries() + series.append(set0) + series.append(set1) + series.append(set2) + series.append(set3) + series.append(set4) + return series + + +if __name__ == '__main__': + import sys + from PyQt5.QtWidgets import QApplication + + app = QApplication(sys.argv) + w = Window() + w.show() + sys.exit(app.exec_()) diff --git a/QChart/HorizontalBarChart.py b/QChart/HorizontalBarChart.py new file mode 100644 index 0000000..1f4000d --- /dev/null +++ b/QChart/HorizontalBarChart.py @@ -0,0 +1,80 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +""" +Created on 2019/10/2 +@author: Irony +@site: https://pyqt5.com , https://github.com/892768447 +@email: 892768447@qq.com +@file: HorizontalBarChart +@description: 横向柱状图表 +""" +from PyQt5.QtChart import QChartView, QChart, QBarSet, QHorizontalBarSeries, QBarCategoryAxis +from PyQt5.QtCore import Qt +from PyQt5.QtGui import QPainter + + +class Window(QChartView): + + def __init__(self, *args, **kwargs): + super(Window, self).__init__(*args, **kwargs) + self.resize(400, 300) + # 抗锯齿 + self.setRenderHint(QPainter.Antialiasing) + + # 图表 + chart = QChart() + self.setChart(chart) + # 设置标题 + chart.setTitle('Simple horizontal barchart example') + # 开启动画效果 + chart.setAnimationOptions(QChart.SeriesAnimations) + # 添加Series + series = self.getSeries() + chart.addSeries(series) + # 分类 + categories = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun'] + # 分类x轴 + axis = QBarCategoryAxis() + axis.append(categories) + # 创建默认轴线 + chart.createDefaultAxes() + # 替换默认y轴 + chart.setAxisY(axis, series) + # 显示图例 + chart.legend().setVisible(True) + chart.legend().setAlignment(Qt.AlignBottom) + + def getSeries(self): + # 创建5个柱子 + set0 = QBarSet('Jane') + set1 = QBarSet('John') + set2 = QBarSet('Axel') + set3 = QBarSet('Mary') + set4 = QBarSet('Samantha') + + # 添加数据 + set0 << 1 << 2 << 3 << 4 << 5 << 6 + set1 << 5 << 0 << 0 << 4 << 0 << 7 + set2 << 3 << 5 << 8 << 13 << 8 << 5 + set3 << 5 << 6 << 7 << 3 << 4 << 5 + set4 << 9 << 7 << 5 << 3 << 1 << 2 + + # 创建柱状条 + series = QHorizontalBarSeries() + series.append(set0) + series.append(set1) + series.append(set2) + series.append(set3) + series.append(set4) + return series + + +if __name__ == '__main__': + import sys + from PyQt5.QtWidgets import QApplication + + app = QApplication(sys.argv) + w = Window() + w.show() + sys.exit(app.exec_()) diff --git a/QChart/HorizontalPercentBarChart.py b/QChart/HorizontalPercentBarChart.py new file mode 100644 index 0000000..6f807e2 --- /dev/null +++ b/QChart/HorizontalPercentBarChart.py @@ -0,0 +1,80 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +""" +Created on 2019/10/2 +@author: Irony +@site: https://pyqt5.com , https://github.com/892768447 +@email: 892768447@qq.com +@file: HorizontalPercentBarChart +@description: 横向百分比柱状图表 +""" +from PyQt5.QtChart import QChartView, QChart, QBarSet, QHorizontalPercentBarSeries, QBarCategoryAxis +from PyQt5.QtCore import Qt +from PyQt5.QtGui import QPainter + + +class Window(QChartView): + + def __init__(self, *args, **kwargs): + super(Window, self).__init__(*args, **kwargs) + self.resize(400, 300) + # 抗锯齿 + self.setRenderHint(QPainter.Antialiasing) + + # 图表 + chart = QChart() + self.setChart(chart) + # 设置标题 + chart.setTitle('Simple horizontal percent barchart example') + # 开启动画效果 + chart.setAnimationOptions(QChart.SeriesAnimations) + # 添加Series + series = self.getSeries() + chart.addSeries(series) + # 分类 + categories = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun'] + # 分类x轴 + axis = QBarCategoryAxis() + axis.append(categories) + # 创建默认轴线 + chart.createDefaultAxes() + # 替换默认y轴 + chart.setAxisY(axis, series) + # 显示图例 + chart.legend().setVisible(True) + chart.legend().setAlignment(Qt.AlignBottom) + + def getSeries(self): + # 创建5个柱子 + set0 = QBarSet('Jane') + set1 = QBarSet('John') + set2 = QBarSet('Axel') + set3 = QBarSet('Mary') + set4 = QBarSet('Samantha') + + # 添加数据 + set0 << 1 << 2 << 3 << 4 << 5 << 6 + set1 << 5 << 0 << 0 << 4 << 0 << 7 + set2 << 3 << 5 << 8 << 13 << 8 << 5 + set3 << 5 << 6 << 7 << 3 << 4 << 5 + set4 << 9 << 7 << 5 << 3 << 1 << 2 + + # 创建柱状条 + series = QHorizontalPercentBarSeries() + series.append(set0) + series.append(set1) + series.append(set2) + series.append(set3) + series.append(set4) + return series + + +if __name__ == '__main__': + import sys + from PyQt5.QtWidgets import QApplication + + app = QApplication(sys.argv) + w = Window() + w.show() + sys.exit(app.exec_()) diff --git a/QChart/PercentBarChart.py b/QChart/PercentBarChart.py new file mode 100644 index 0000000..1cd4d06 --- /dev/null +++ b/QChart/PercentBarChart.py @@ -0,0 +1,80 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +""" +Created on 2019/10/2 +@author: Irony +@site: https://pyqt5.com , https://github.com/892768447 +@email: 892768447@qq.com +@file: PercentBarChart +@description: 百分比柱状图表 +""" +from PyQt5.QtChart import QChartView, QChart, QBarSet, QPercentBarSeries, QBarCategoryAxis +from PyQt5.QtCore import Qt +from PyQt5.QtGui import QPainter + + +class Window(QChartView): + + def __init__(self, *args, **kwargs): + super(Window, self).__init__(*args, **kwargs) + self.resize(400, 300) + # 抗锯齿 + self.setRenderHint(QPainter.Antialiasing) + + # 图表 + chart = QChart() + self.setChart(chart) + # 设置标题 + chart.setTitle('Simple percentbarchart example') + # 开启动画效果 + chart.setAnimationOptions(QChart.SeriesAnimations) + # 添加Series + series = self.getSeries() + chart.addSeries(series) + # 分类 + categories = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun'] + # 分类x轴 + axis = QBarCategoryAxis() + axis.append(categories) + # 创建默认轴线 + chart.createDefaultAxes() + # 替换默认x轴 + chart.setAxisX(axis, series) + # 显示图例 + chart.legend().setVisible(True) + chart.legend().setAlignment(Qt.AlignBottom) + + def getSeries(self): + # 创建5个柱子 + set0 = QBarSet('Jane') + set1 = QBarSet('John') + set2 = QBarSet('Axel') + set3 = QBarSet('Mary') + set4 = QBarSet('Samantha') + + # 添加数据 + set0 << 1 << 2 << 3 << 4 << 5 << 6 + set1 << 5 << 0 << 0 << 4 << 0 << 7 + set2 << 3 << 5 << 8 << 13 << 8 << 5 + set3 << 5 << 6 << 7 << 3 << 4 << 5 + set4 << 9 << 7 << 5 << 3 << 1 << 2 + + # 创建柱状条 + series = QPercentBarSeries() + series.append(set0) + series.append(set1) + series.append(set2) + series.append(set3) + series.append(set4) + return series + + +if __name__ == '__main__': + import sys + from PyQt5.QtWidgets import QApplication + + app = QApplication(sys.argv) + w = Window() + w.show() + sys.exit(app.exec_()) diff --git a/QChart/PieChart.py b/QChart/PieChart.py new file mode 100644 index 0000000..f3bb7a0 --- /dev/null +++ b/QChart/PieChart.py @@ -0,0 +1,55 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +""" +Created on 2019/10/2 +@author: Irony +@site: https://pyqt5.com , https://github.com/892768447 +@email: 892768447@qq.com +@file: PieChart +@description: 饼状图表 +""" +from PyQt5.QtChart import QChartView, QChart, QPieSeries +from PyQt5.QtGui import QPainter, QColor + + +class Window(QChartView): + + def __init__(self, *args, **kwargs): + super(Window, self).__init__(*args, **kwargs) + self.resize(400, 300) + # 抗锯齿 + self.setRenderHint(QPainter.Antialiasing) + + # 图表 + chart = QChart() + self.setChart(chart) + # 设置标题 + chart.setTitle('Simple piechart example') + # 添加Series + chart.addSeries(self.getSeries()) + + def getSeries(self): + series = QPieSeries() + slice0 = series.append('10%', 1) + series.append('20%', 2) + series.append('70%', 7) + # 显示label文字 + series.setLabelsVisible() + series.setPieSize(0.5) + # 使第一块突出显示 + slice0.setLabelVisible() + slice0.setExploded() + # 设置第一块颜色 + slice0.setColor(QColor(255, 0, 0, 100)) + return series + + +if __name__ == '__main__': + import sys + from PyQt5.QtWidgets import QApplication + + app = QApplication(sys.argv) + w = Window() + w.show() + sys.exit(app.exec_()) diff --git a/QChart/README.md b/QChart/README.md index 13577ea..f7702bf 100644 --- a/QChart/README.md +++ b/QChart/README.md @@ -7,6 +7,13 @@ - [LineChart自定义xy轴](#4LineChart自定义xy轴) - [ToolTip提示](#5ToolTip提示) - [动态曲线图](#6动态曲线图) + - [区域图表](#7区域图表) + - [柱状图表](#8柱状图表) + - [饼状图表](#9饼状图表) + - [样条图表](#10样条图表) + - [百分比柱状图表](#11百分比柱状图表) + - [横向柱状图表](#12横向柱状图表) + - [横向百分比柱状图表](#13横向百分比柱状图表) ## 1、折线图 [运行 LineChart.py](LineChart.py) @@ -41,3 +48,38 @@ [运行 DynamicSpline.py](DynamicSpline.py) ![DynamicSpline](ScreenShot/DynamicSplineChart.gif) + +## 7、区域图表 +[运行 AreaChart.py](AreaChart.py) + +![AreaChart](ScreenShot/AreaChart.png) + +## 8、柱状图表 +[运行 BarChart.py](BarChart.py) + +![BarChart](ScreenShot/BarChart.png) + +## 9、饼状图表 +[运行 PieChart.py](PieChart.py) + +![PieChart](ScreenShot/PieChart.png) + +## 10、样条图表 +[运行 SplineChart.py](SplineChart.py) + +![SplineChart](ScreenShot/SplineChart.png) + +## 11、百分比柱状图表 +[运行 PercentBarChart.py](PercentBarChart.py) + +![PercentBarChart](ScreenShot/PercentBarChart.png) + +## 12、横向柱状图表 +[运行 HorizontalBarChart.py](HorizontalBarChart.py) + +![HorizontalBarChart](ScreenShot/HorizontalBarChart.png) + +## 13、横向百分比柱状图表 +[运行 HorizontalPercentBarChart.py](HorizontalPercentBarChart.py) + +![HorizontalPercentBarChart](ScreenShot/HorizontalPercentBarChart.png) diff --git a/QChart/ScreenShot/AreaChart.png b/QChart/ScreenShot/AreaChart.png new file mode 100644 index 0000000000000000000000000000000000000000..701c4365125d476fb9a0be47febc76ae854403cb GIT binary patch literal 12327 zcmb7rWmsH6uqBe?h+)p``{V~ZV66sx8MYVI|LgbxI2UF&AuP| zy?wjy+x;Vg)4#UYVElzI^n?UkldLpoGTo#{)Evk zD3~Ec>~YIC!O1C~8cX>^c z=r-E`1`&yZ!T2_gSsMbgpJ&tX&0YaB1q#J6aPVUW+qYUjA6_)1_mX8wY9CpvR}Tabg;{T!KxCo0sSVgTt2y;yOv~b1l$aX znr>|LP^7!W`Z2PxesbKes1k|d+g*+J3hn7r#s#U;xxI>K@qud;Mk;k|-8=L;6E z$O{5*_f6aALW#k(`Sz0?+ncd2n*8pCRTYO4lEi54{ViY0#3`GfNkt52e;JVTi8Npq z_$iq6Ll}d)!qY11>J{u++1arRe1RpR6p05z#*$#VjArL^o^KMeVH4GqzTm(=B4OY= z$b#1D^-6wvpDK$0o)|gqP%{dyX))tRKW$CK&|gTB*_eY~E}x{_>J?#9O;|2gvCR*< zexBn4%DmkP^?4_848~Z~)l@XmD)E!HloI2cTR%MTF^YMI;N4A8ng*{q4!Xl<9pXXqL$rH*OWHZfzD-5=YxXItJl>{m8w^u99_{G z)KQ=DfwcLBzXe`P)CS%$PuB8jAD)zG3Q^`n!YslPHay`zw51$;A*r$|dac~?dXS$r z40;4lhb!ko;vg(kk`NGBx&3XyJ;6{&AN>{U=YBj8SB&w`?etwJrShlVFPGI|V^)lK zJ9foff2J<42L=8d+mLp>EF|bikGylvn|DN)aL*4tLXQ@|EAEEaeDAKNC3XaMsaU+> zZ7>UNMB879ddDD=KoFSJ1h0Mt1|TO&8c5WyHPeO+mCiZqADvjluMO@- zS}jw)IPeZqOxwwh^JMaN_w`NSs{Z8Ak*IzOLi9w$3t=^Zw~(uejQ5}J9iE+jRU+_l zf$70t-Hp5QO&~ILM>JpBSYHQacFaTo2evsM8(}D(}4WQ&DH0 ztL=DCpAtd-^e5Tz`O3>vIqXYI(L!PF&kp2uj|2HOL~W?#p9y+inrMlW-l5gK7L!ZC zAaGhN(LC~#k97lYJrfdVui{*!NtVL7jI3<=^Y7;&HR6(*3YFojiVsLDb7OU zL!>T=W$p0D@!n<`Dz6ih1ue^$eQ4Ai>!N&F=^XUDV&A>HX$y(+To2vc&D*_k5ADfU zrt!;8h*)htwBLT2$V;?w<{?{Y-twleX6nVpcC{b@skSU9Tg+n%xaWp7As2eM?*#h4 zqAcs;DQhIGzH^~y;l$pE^v*i_dyPR!Qz*0T2}j(BFRvltt5Q~a|0mg6l+7mQb|4DE zh;hIAN*WB_jxV9-H$o4FK)#v40g#A~K}AE890CtOs5tlT^8T=zp|KgYNePsihQ_Yi z&R0Z<8HqnHfXZ!9l1Sj^FdPj{;l_RU6I%9<-niKP?!JwNvAc=Oti^wG7Zj8iB`r0R z4Lx^)+@T66AIhWEVt-}}TAAjLA;k=YY^^-UH|mdGQR=AG=({EXM&XW;ij*J6!uKTw zqmkiiZ%vhp7H<(nRh*C{)DaSzKcW7#8wH~e8zos=WzlC)r*_Z8*vo7duy-Fd*yu1 zpyk|XX;*Pz@o1aIJONg75>efdLNr8-#ZF4(dU}&+^<|7Kf8vNX;$}rKc$Q$K%#TbE z%_9DnWO5p3F~wr&!n_4^VS%kbr~W7u=f=?s?UWJCUJOVdDg^fvn~MofgL}q?uhcX6 zX>FIRDg&VECH1B;;wzQ#fKet)a!k={enbO8q`V-|>zTKbtJ+pX{~msCi)R(~*T9)R z1=Xsa_+wG+b)h8i^%D3tcFs=9+`LFcDW7{y=Qim{;xn5Ox(-~_hOCSX%IpCI!l(d& z0})_w^1Oe)CytK-ZySOaZgz(Qk`g^PWbe8}q^7b5H3B&^8WSqGzEIqfD$;3!v&x0^ zTJf!A)hf4K{>Ppuk^lL7@WVK^44lhPc#!H5%B-hIq$%Ei_K?f7r?)NT(kNKqw=^`a z9`jxAh5QVHp&F~Qc|Md#H{8qYzx+c&Q2?7zp0D(1Hs0H?9rvym1~xk~>ZD^!68A+y zAR*hOGqPS9?sU_>dEouOezP(4ERYOd9@3e=&j`f&>ybRCYFEPN#Pd}vG*v%=JqUlm zk|bevZcy{B+)1|mRt^`93j%s&;(x3aeW`&Z!IK~-uHb8-3o3aLj(ej<#yd5E};BS z{hT8RSlULe{*dGO-9q)b!M_sZJ@!)>1IA#}Zit%+T#~WX?_tS+=a1b1Ydv|_!%)UR zy0lIfnx~hTUUWoAhwJk+2;qKUOGg{F4q^h|(>5L%g7#mG@r{VYwpC#yN*sNV$7)sF z@T|;U^M|(`ISk^PjQj`h0zTlX=GP#BDL(LVHeyq1U#`w2w&}SYI8e&Nc5?E3nXB0Y zvo0Th{1{UACYunvH@EKJ_Hh@|iV z0H#(B<)){nB~&z$d(@4CDxMQ>i~~-(u7vzSJ}~kert0=~?eg;Si?-h#n?*Hme;s+?XV+blo`;ji7jNEMhcFI)`G8(zU%nv9x%GELx}iJ-n)QzYCR zK7I3xjZzBrL{|FEbD%2Y=N77*a;yP@W+Sx6LtR-Z0H<{(&lOPmkj*#B*lVAH!lr?W z_xDDb7X%^`9S^VJj1$Sl_A`tcR}R1#<-TrjdY-`h7u+mTfEI9cr3FqJlis9+f8I ziaeEqXn53ew7xFvnuebdNp`;QE#JA><;DL zwUL3`F@a&pD48PN`!lA`h5Ir2<>g^OnQfinaDei7_v4&#MJxDx3+bm>?Z#bGxB2lr z*ODdeMd|KiF8N;q5$!z>Z)tS{m|k4PeZ2R0wYU93xygTuO4gTd_Z|K z>SYx^cC4>o;Y3Q!tDas*P$3rrXG2LBZ`E{jNp8C7H8$t>>Cm=2{w5fVf2fzap#-gG z^*zQO#oCxG>$;EwZ_~<$44k^ZVkRQu0Ot&eP(|yk*$H*oi1Lfy_(051ftS$QhpOeJ zxy|KmZTw)WdYbS#>~?9S&_3KA7AWK<62nirxV$vP?i=YHI33U`26sj=rRfz<+5aPZiNW2 z|L^DVzsi9B_V8>lsj@QT(5t&KwXwFor~sIIr}Gc&m=xSj+7Ja z3ReRgB>N7=c3`D*zqusyYn^qmPGzRr)q%?Nk5;Z$h*hp4&p2YC5XJm^=|=)7ZGy}|8bdzYr;06h5l6IlRZbfHbk zlXrK0KuFnQG!G2j^x^O_uQwX>)os@+wet>tJ{?|5ABq0iBED&FK@D9ANP?1@uzceY zTR*oe6fkyTC#usn4p4M)oVBfRYE?WzNPzn#o=CFZKifWwj_il?jmjS>LuZmAG_Fox zxU(yW#;@SZ7)1MG^c?rXyx#qQlrM9rsRaYRBXE=;N~wL#0lmf>5L16!?o1*T$!B6+ zUto#j!xCkJpCJ2Kom52Tg~Ae+ib|7(fS92I#9-w_2xr?`uO`E;*q9}0S3Ol z;&N6+XSA#h2xOT3Fb4goXhScTMec2vzy+Fz-K7^5^Zz|yieFOo;WdRc2E1{vWam!3 z|BZc({jU)Ge>hOni!KzP9$EOk|Kd-^?n|hD_+{Sv$@dw5rj6L-VRyUUrJ)AD`-9z- zu?n90`F1JTV#&d4YyEBAhyw6l8*zQ7%j`pw$)Zo=52(dvEb~X~VYYw&s{QdY@)Xk0 zkCn3g_*lnRvwf*XrlI*Lu zW@`PF`YD+ruQ*e)$yo3V(X1e{y)UDwA)+f5jyC+3?Z1cOD0i-Uvvyc@ar5Hee=7`p z$=fuLLeJOLkJg`f&5*gC7ONEUeUJagiYe+LNn$7pWdu4%)oYnDP~^vfY5yTZL#1sw zm_Vs$?+oe4fp-y^dK+^zNY5FUG(}-g(>TUAy0UJR%z3<#PTFM2fmf%>`dRB-r$JNi zU0Px~`!qz4yE(-ZDm>u0LprpZw8GqmKR<6~5%N@9h!2%fWMdmSh|KvO4)}onErDs$ z9yN3IpnhlF`7Wxg&FmV==ATy#pNns1x_&7MRaaJmrKF?|{muvZNa7e-SkS$6i{kF; z_}vdukIce^K_X`Q=fXQVi%N=$iluX1HHhpjkm>QH zFMOvL7a`^4%%4x!3_VnPa~FxSapG(rN zQO_d8LoR&ak^$~+5-bNE#)dqjQM*4L{-xSn2o{yLIF!wRNB|7pd`q7Rcr@eVe`MjA zJqPnqm(p_o;nJ4or3PO|qnzz&!1-p)Fd2KFjPGAe4bKIRDprvlo5ej`3a3wI+H1GZ zaF5E@1{}$(?B4O*eS_jXy_6KT_QJ4LbfWgeQEE@Nq7%+xq1_AJ_}chC#Q4EL>z^DGQEXTMB`^Er27kpV>gJuY|Dwv(BEmUQBkG83G(IYR-KicrRU1f1^ z-PQ`MxWD;{aSNY*>TiySBVw2NOjZg*3pku%&ddi+5O#@;IpZ+gtKAKgpIY} zTi5o;T3&by^~g<>!D=1LI&03QDOoNJK2d}XcPMh3v6c2NE!PLP4At{fF*{_f#%H6yU;)AJTpaiD|SNBUz)zv~%U2dj)QF_uo=oJ6swjQC{kpSCk>$A>{G-JZlqX`lKIG%ZVi|L*HI%{o^KJ}OL7F|X<&hn@aR8l)9p zlD`TsnKg&AOVRYv@ScEJ%BM3$cS#n$b9W@&2*=@{9GQ;VHi<@{p&n_ zkvjvU*R~2HM8XiZ@fQ9ZD2pF3{|&mC80M)-VSe*<9@ZY4b5GkiL)^s zE{GO)UG8NqBEkmhDFRA`JD2H3Pnal~+$9**6CXykrB>P=aC6FYN7%6dCwULRzZ+>!63LecDD0sDSp`Z&DF7 z{p8;_hwvX1Lt6OA{fyBmIVClZxoZI4Qds&l&Tk1oH!Jh*T?$sjRrt_qm&edvq-EOzvV4ZNRN4z<{k)30Bpu3qb zDN$bN+Y3oWH&NMMV3WGsNs6GYdg3>p_bXfQSq9?waknpUzWKP}%C;^>g7ptppUC~a zD3Mq)g#EWD*)w93)+bCDb|Z^4X~MzG;ZF6TaV~Aj#{++9n$(YP6C|>6JGQu$^p(vW z_w_pTZkRJ26mK#>O_=tMjb7DIVgHf%(T_$SDXgr<`zOB@P#-H0KJf}Fo&MY{IWC}; z=!`>I`BBJp-*ZaQZyriHvmQfdyrSy7)Y=kY_QA+6i(IS@B0MIIPU%P<_hujbHTo|x zXBC@n99WWOTwWL(PmN*E7@<&71jo3%u=S#`ZlR|5bKKgeH>_amXL$yr>5^yEr)w%) z_3Aq#_!mPni{DsfJjf4 zwSkf3FAwRBY;w)3o^k7@QoqprNpgfp>ba~pldt3xo#alZANreC^qaM@NkIZ;4B}VE z4bjubjBBCj-G&fL$uv`EsL9eml&#!JYFYW=DCZ(aUCq}}90{ATa~>TJhm6#9a<+b> zt|AY*cu_enx>f_FS^P_u%Ub9nT4yV}Rut_MgL_t(E^+-;sF83EqM`%0OBy_|{ol9?zM4u4-PsfOhXdy=Q-7bvN6n{E zca3RASP&9xD%d!gh_$K6D$+xI$#e5%t=TZz=Y*|a7M3P(;lbF-{*a+)%9wq2MD70c!v%Na z!DWN z${pu0C<{3nYVC^F2(MO*x?i(z;TXi;;V?I+ny+noKL~@utFH+TYp?FqmIfd`mGI#* zjg2JD`FCEEyYdZ$tUK%5coYhvA%aX;iW%sY?iPewWYk#d2p+9Nga(F zx9n&-CGqaGos1Uu<1m|&2FKIQiQu(7j!qTqe7xv2Q3nE*Wh3!ncIPPun>AF8+ zosmIYU|ynO>NqMmMbFKxUgU$$yPFDeUS5ymu&~qlj+g-k!ur3G_&Z8E${T6D`ZY(D zmcv|Dzu1)ext?~WZaI!41f8`%erW2tLlB8iqyk#DdWMGN%q%SWc`+NDL>MB5`_-K! zjYtU^!qfYCw1vYO4orjU47t5IvYsPsa{XMysa$>yKCH8?-C|lzybK5kj4DrjP&Mdy zI-aLNa=Y*CxG_2B8VR;OPxZbezI-g|Ae+DOoxDM^AW1fHSj~&DkRH{K1%F&*tejp= zQy~=U#ZZ*CSjA6Zun4#C#opFr!ky{_*{yolvE{o}yFMA)feVGOgmw`s?agi5doi^h z^Aez~BYOE9HM|w{%9DC}=^lQ71V`0j(|WC9ds~AM2@wNns@H0g-i6&rm4*+f*cl&r zc=`4TZ`HFAWjgXXf)M01b;uc_-#-3^MZ)9DRL0|h?qjw8b=jG85Yg!7gCJ(;qL%@t zaIbM9EpS2i@$mSJXf1qTeEYkMTXaOm#5*fGnhRoNY8;?pUkU#jCjpfzn)TmoJpYs5 z;mH?6bD^AEDy}~_UVTO%v*T{!ap<#-%PSa}zqcm_NtF`|A#1|HVMG6E0Sa6sIhjmx z2Q!Dvay?3o?~8@TY|Jk<>dYf{%7gG zyG@)f4IZl=J}v&K`4IN~`#9H5oW|M6-{Ts0(%_Dmz#yT+kA8+3AqBg;8{pt0sMJ>~ z%^@k)-4a>Rfw(e0n!d!%%ZUtv`sV_InGh#*72Asbo5AD7`4&ul(q`z_YaM4ag;^>3 zfiO-NbG`NEBB*pv>8gOe*B|G1V|vl#ae_5>S7v@QSBf}t=)67mzZyJmRbfTtW~tdH z1)>@%aUtYihEsJoLb^&krKSn)PG?^}Dw`{JFQhxk4E^rUc%ZYBkV>QRJ(fW)I#yg! zb*#V=D~l4auCe8C#dGDXbD^WBQxx-X_4qk2JT8QF`1|mzIwEkNr?4-r4_=?|e!`M6 zaoLfmc=x7nL9h$O-J3>_3Kj(Ry$P9p{Se7b1a67?i^ggA#qY~nU_*&_f{`HZjP{uE zekdsffpzF>C{WIKMsQCFfj&f#`3Fczz5cz-I@$00lpH3{A#5tJR_==~Z=VJYy9VcL zDFrwSqfqk@Fg316v@oht!F?LM+?p6VW@^Q^&T~>|1!3BSia<>DXL$W_ zpQOQt)DJF$0}1um6p*|y_+oepm`jM%`<*e_%+OIh_91z9c2mn^x%r2;ZscMEFc;^a z-*5=uHbrH|m!2C~bjgfF)_1;o3!gHUaxGh0qq#Ts+2=)dMk`fEo-RGH_sd$)gE8!Ha%u~I+s z7o!aPDUv^aAmMbyb<Xm%K~R?I8- zSe0Z5PPR$3O{CyA!)+v2Jw){^i_q{dInCU*uj#P*U{oDw_$m4X{~i_%V)gTor^#M+ zz5GHn=AnL}*dlOl*Uxe;{!Vuz$}rW)jy+bEC^RoC;0NVhbGvu*ng)ZNv|yG;Z{aGV zPgDTFfBn9h+;`ezYnL&ke@hmrqK?xIj$5Q+=reVp0N+cCv_2CyR;+gCD5jwT@E zO5R^iRV~E07-ure06IR$04l$>6YjEkmcXV3$-!7*mV`-W_M%4q_?N zmeS)tsh`!eikgd(?&{h&o+bQoM;vz+*E-1cGn@7bKKH)K2g%^SFZ`f$q@oa=^(}II zuVo4%nSEpy-p@G0D3t!3O(7OzPiUTCnQ%lS#j5UK)p@)I5(yczviDc$a?>Oy^o>f- zVjt?*_TF*p145UxZ{`U>WlD{riek;#M~g#St=s$0DYSypP8 zoottLh)jnX_YMxm-RU2%JNNs1>*I0=xm22BejiP9GSFPGtmpRTw)k7B(~aVy9&GBQ z5e~PJO5?0QEob@%(tDl&W+&w~@;-&W?NkPgD88J#LefNjxCJ_+qFYLT^ZSq0E99$-c1H19WToW>!1Bx^tG+AJCCzvSo!DLNay zrThNVghPyzk%Mu$GxuY3z=TLX6_GhfX!tL5PBy1(pz|y|6-d{V{?%#9sgU>EEhW#2 zy$o^{vLzv>9i-seM>PJ8fEljjOHmaigU%KGRak|~_j|cYN1Yf=_X_?CZa5;b;6nd+ zYb{S9{JU-QGs*_G$SC>4465VY-&JxRS?Y$J6PwRg= zh@0pB3?d@0?tMB+Fh~JVgxU!~?Tf~eRJ5F}9Lb478{XK)e)(e$92yRi@>!JLPPhx9 znahaTZ&Beqf2mA`xAlz?w8gndFUorIUFLDqq8L=s{4>zvO?IZh9^uB@{y&U#Q?K5S zzyHyg#@)|PS2>X{zWtA9nLfH(@?khDY?G>s!PTHK=yzdCQB1l1`C;NS1r(%fJx=Ay zV1{S|kPY)g_xGg!M)M1K1!ta(_jcLyP6-R5Z0(Hja}$%w|1KGL3V2t~QiV47N$_+C z10TeeMLolV@p1wjpLvujO3od&>g!^rEs5nKI%TUY4=ne9T>(>rlHkGH4&uEC8WnS1 zt^1ZsQs+@EdzpJfQ(1EjKZ)(gMgqv9Wt|X*dA;aWS_D!p&vmWsMdNptU;HE`5lKiV zFm@g7?50oc?Y-@YKK1Ws9vmE)ypI^#>keN&PTj;8Q4s}7FRcE(&ZH3;1r>UeLJ!ia z*e2t9^=uA7 z%B~8{ZT}5=340u@K|ih*DUUgCgbmHdzWMyX%fO@+t|;px?NIj2-|LTO!t=RvBc|82 zgI9;`Cqevt^@~NTwxq>^vlI6IsiO9Dl6?a<*;k9~ur(xDl=Z;4f~F?Hy1Gbd zX=%`s!$()wJLBIBw)hKSxt{pyfi89C0;$8ocTH#O{GgXD#m^-8Wm1NE(v;s5 zD0tOl)j6j4RgD=yujBWR1M?=U$0p4eO)NIQiOd8cESPy3RDPZj|PYQ$$$v=IT_lkveICn|KUVgHHm8d2qS zmg1qO%n@PlC_{8GoMBiV=(!P$@&IM zDElKj{wYab4=;~dK71#P4{X2qPX=v=lg4MLOOO(ea2F{fMHWXK$ zfVjU27x`U`dU=YkR)wZ$X?ts{EHWs?x={|tv(9-|Iw z&6IYGV%HjiAKlIc685UrcE+NXS!Be@h~Rl{G!iGdn5?Yq!!}j?B*CX=fMbpN9*u#F zO#zD1<%V(2mkmN7&@TXd=~~c}#>YMX{vngj1sEAuxDaeGo~4gZ+mRVK3;-wI z{Rc+9HdGqkppanrZ9$OOcFvuIWnRQ5FkI57x_Y4DNKMs(4v>jz{RWtjlC$&i`%fNc zH_bx_9(FIy7f*9Z72HV;L$~R$ZqCegbxr~?q40!LflJRpsE6zI+mTys=^srgKX0}5 zPo4*D0+j)mE=BLXmn2te$r(=hS`MFdN>fInoD_Ll-9%G1k1K;g<;tWbii1z$7ufp7 zekDZFc~<VX%YF!`eCwz_zMfRDSeEDd zKSV1u`(o|m*}X$E7gO;ozv{=aGUDcr2amT&l_h8T-1Pwl+uP7;?M!tM&=x9R9SNa6 zZ0Vo_H^mEMDg?;?7c2c=lpX&ah5cU!!=qAZY9iK>04M?XAL=vRs(G=>2nd8mEFaLW z;flq@#RcnN0-+ov=D&+f7xeB8Itd90LM=1EN18+1jr?|DBkFEBOgOJ`!8Fl!8A}ck zQ#N6RjKO+50C`I%0ru;TIlUhbOW=b?rxM41ml#eSyWRVwy(mg{3ofAG$T`27*~IO8b=jB0DCfNu<36ZxtT zk9;B_1GJw&Neo@{VcC@JWUm*VTPr}W$LT=V09R-Zvi!csTR*CO!^H>{7VvNVW|G8; c-4{w9HfCN7#k&OH4*+noQcB<-5+))41N7}`^#A|> literal 0 HcmV?d00001 diff --git a/QChart/ScreenShot/BarChart.png b/QChart/ScreenShot/BarChart.png new file mode 100644 index 0000000000000000000000000000000000000000..182e1f40a99d6845b265026bbbd279dba8ee2c0e GIT binary patch literal 13948 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 ND{4F_x&QR#{{iR7`{@7x literal 0 HcmV?d00001 diff --git a/QChart/ScreenShot/HorizontalBarChart.png b/QChart/ScreenShot/HorizontalBarChart.png new file mode 100644 index 0000000000000000000000000000000000000000..5e4830ae55e33b1e7a97eab2c5c09aeb0ef1437d GIT binary patch literal 12470 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 literal 0 HcmV?d00001 diff --git a/QChart/ScreenShot/HorizontalPercentBarChart.png b/QChart/ScreenShot/HorizontalPercentBarChart.png new file mode 100644 index 0000000000000000000000000000000000000000..554e8aec17cf93f77b11d9e59563cd0fc3be5a73 GIT binary patch literal 11324 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 Nj)wl-3N^dm{sS;ivjqSE literal 0 HcmV?d00001 diff --git a/QChart/ScreenShot/PieChart.png b/QChart/ScreenShot/PieChart.png new file mode 100644 index 0000000000000000000000000000000000000000..4fc450a7998fe60a74bd93bc8d096eb3aeee68dd GIT binary patch literal 14849 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 jHG7->EMxq(_K3*c4#Okpx$6af+6gBut^h6OZ literal 0 HcmV?d00001 diff --git a/QChart/ScreenShot/SplineChart.png b/QChart/ScreenShot/SplineChart.png new file mode 100644 index 0000000000000000000000000000000000000000..170eb927ea9a448bd6751db83202e2d62ef4ef31 GIT binary patch literal 16691 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�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 EA0chJ6#xJL literal 0 HcmV?d00001 diff --git a/QChart/SplineChart.py b/QChart/SplineChart.py new file mode 100644 index 0000000..69a5436 --- /dev/null +++ b/QChart/SplineChart.py @@ -0,0 +1,57 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +""" +Created on 2019/10/2 +@author: Irony +@site: https://pyqt5.com , https://github.com/892768447 +@email: 892768447@qq.com +@file: SplineChart +@description: 样条图表 +""" +from PyQt5.QtChart import QChartView, QChart, QSplineSeries +from PyQt5.QtCore import QPointF +from PyQt5.QtGui import QPainter + + +class Window(QChartView): + + def __init__(self, *args, **kwargs): + super(Window, self).__init__(*args, **kwargs) + self.resize(400, 300) + # 抗锯齿 + self.setRenderHint(QPainter.Antialiasing) + + # 图表 + chart = QChart() + self.setChart(chart) + # 设置标题 + chart.setTitle('Simple splinechart example') + # 添加Series + self.getSeries(chart) + # 创建默认xy轴 + chart.createDefaultAxes() + chart.legend().setVisible(False) + + def getSeries(self, chart): + # 第一组 + series = QSplineSeries(chart) + series << QPointF(1, 5) << QPointF(3, 7) << QPointF(7, 6) << QPointF(9, 7) \ + << QPointF(12, 6) << QPointF(16, 7) << QPointF(18, 5) + chart.addSeries(series) + + # 第二组 + series = QSplineSeries(chart) + series << QPointF(1, 3) << QPointF(3, 4) << QPointF(7, 3) << QPointF(8, 2) \ + << QPointF(12, 3) << QPointF(16, 4) << QPointF(18, 3) + chart.addSeries(series) + + +if __name__ == '__main__': + import sys + from PyQt5.QtWidgets import QApplication + + app = QApplication(sys.argv) + w = Window() + w.show() + sys.exit(app.exec_()) diff --git a/README.md b/README.md index 2bb5bcf..deefdb4 100644 --- a/README.md +++ b/README.md @@ -158,6 +158,13 @@ https://pyqt5.com 社区是专门针对PyQt5学习和提升开设的博客网站 - [LineChart自定义xy轴](QChart/CustomXYaxis.py) - [ToolTip提示](QChart/ToolTip.py) - [DynamicSpline动态曲线图](QChart/DynamicSpline.py) + - [区域图表](QChart/AreaChart.py) + - [柱状图表](QChart/BarChart.py) + - [饼状图表](QChart/PieChart.py) + - [样条图表](QChart/SplineChart.py) + - [百分比柱状图表](QChart/PercentBarChart.py) + - [横向柱状图表](QChart/HorizontalBarChart.py) + - [横向百分比柱状图表](QChart/HorizontalPercentBarChart.py) - [PyQtGraph](PyQtGraph) - [鼠标获取X轴坐标](PyQtGraph/mouseFlow.py)