def createAreaChart(self): chart = QChart() chart.setTitle("Area chart") # The lower series is initialized to zero values. lowerSeries = None y_points = [] for i, data_list in enumerate(self.m_dataTable): upperSeries = QLineSeries(chart) for j, (value, _) in enumerate(data_list): y = value.y() if lowerSeries is None: upperSeries.append(QPointF(j, y)) y_points.append(y) else: new_y = y_points[i] + y upperSeries.append(QPointF(j, new_y)) y_points[j] += new_y area = QAreaSeries(upperSeries, lowerSeries) area.setName("Series " + str(i)) chart.addSeries(area) lowerSeries = upperSeries chart.createDefaultAxes() return chart
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
def main(): import sys app = QApplication(sys.argv) series0 = QLineSeries() series1 = QLineSeries() 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) chart = QChart() chart.addSeries(series) chart.setTitle("Simple areachart example") 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) window = QMainWindow() window.setCentralWidget(chartView) window.resize(400, 300) window.show() sys.exit(app.exec_())
series4 = QLineSeries() series4.setName("star inner") ad = (ANGULAR_MAX - ANGULAR_MIN) / 8.0 rd = (RADIAL_MAX - RADIAL_MIN) / 3.0 series4.append(ANGULAR_MIN, RADIAL_MAX) series4.append(ANGULAR_MIN + ad * 1, RADIAL_MIN + rd) series4.append(ANGULAR_MIN + ad * 2, RADIAL_MAX) series4.append(ANGULAR_MIN + ad * 3, RADIAL_MIN + rd) series4.append(ANGULAR_MIN + ad * 4, RADIAL_MAX) series4.append(ANGULAR_MIN + ad * 5, RADIAL_MIN + rd) series4.append(ANGULAR_MIN + ad * 6, RADIAL_MAX) series4.append(ANGULAR_MIN + ad * 7, RADIAL_MIN + rd) series4.append(ANGULAR_MIN + ad * 8, RADIAL_MAX) series5 = QAreaSeries() series5.setName("star area") series5.setUpperSeries(series3) series5.setLowerSeries(series4) series5.setOpacity(0.5) chart = QPolarChart() chart.addSeries(series1) chart.addSeries(series2) chart.addSeries(series3) chart.addSeries(series4) chart.addSeries(series5) chart.setTitle( "Use arrow keys to scroll, +/- to zoom, and space to switch chart type.") angularAxis = QValueAxis() angularAxis.setTickCount(9)