赞
踩
面积图(Area Chart)又称区域图,面积图强调数据随基线数据而变化的程度,也可用于引起人们对总值趋势的注意。例如,表示随时间而变化的利润的数据可以绘制在面积图中以强调总利润。在QChart中使用QAreaSeries来实现面积图的绘制。
QAreaSeries类实现用面积图的方式显示数据。面积图用于显示定量数据。它根据高低两条边界线来确定面积区域。两条边界线之间的区域将被填充。
QAreaSeries常用函数:
series. setPointLabelsFormat('(@xPoint, @yPoint)')
QAreaSeries常用信号:
示例代码显示了如何创建简单的面积图,并使用渐变方式填充整个区域。完整代码如下:
- import sys
- from PyQt5.QtCore import Qt, QPointF
- from PyQt5.QtGui import QPainter, QPen, QLinearGradient, QColor
- from PyQt5.QtWidgets import QApplication, QMainWindow
- from PyQt5.QtChart import QChartView, QChart, QLineSeries, QAreaSeries
-
- class DemoChartArea(QMainWindow):
- def __init__(self, parent=None):
- super(DemoChartArea, self).__init__(parent)
-
- # 设置窗口标题
- self.setWindowTitle('实战 Qt for Python: QChart面积图演示')
- # 设置窗口大小
- self.resize(480, 360)
-
- self.createChart()
-
- def createChart(self):
-
- #面积图的上下两条曲线
- #注意line0和line1的生存周期!!!!!
- self.line0 = QLineSeries()
- self.line1 = QLineSeries()
-
- self.line0 << QPointF(1, 5) << QPointF(3, 7) << QPointF(7, 6) << QPointF(9, 7) << QPointF(12, 6) << QPointF(16, 7) << QPointF(18, 5)
- self.line1 << QPointF(1, 3) << QPointF(3, 4) << QPointF(7, 3) << QPointF(8, 2) << QPointF(12, 3) << QPointF(16, 4) << QPointF(18, 3)
-
- #面积图
- areaSeries = QAreaSeries(self.line0, self.line1)
- areaSeries.setName('蝙蝠侠') #Batman
-
- pen = QPen(QColor(0x059605))
- pen.setWidth(3)
- areaSeries.setPen(pen)
-
- #渐变设置
- gradient = QLinearGradient(QPointF(0,0), QPointF(0, 1))
- gradient.setColorAt(0.0, QColor(0x3cc63c))
- gradient.setColorAt(1.0, QColor(0x26f626))
- gradient.setCoordinateMode(QLinearGradient.ObjectBoundingMode)
- areaSeries.setBrush(gradient)
-
- #创建图表
- chart = QChart()
- chart.addSeries(areaSeries)
- chart.setTitle('简单面积图示例')
- chart.createDefaultAxes()
- chart.axes(Qt.Horizontal)[0].setRange(0, 20) #横坐标数值范围
- chart.axes(Qt.Vertical)[0].setRange(0, 10) #纵坐标数值范围
-
- #图表视图
- chartView = QChartView(chart)
- chartView.setRenderHint(QPainter.Antialiasing)
-
- self.setCentralWidget(chartView)
-
-
- if __name__ == '__main__':
- app = QApplication(sys.argv)
- window = DemoChartArea()
- window.show()
- sys.exit(app.exec())
运行结果如下图:
QChart面积图演示
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。