pyqt 柱状图(154-QChart图表之多坐标轴图表)(1)

在图表制作中,有些情况需要将不同类型数据序列显示一个图表中,以显示对比效果,但是两者的数据所对应的坐标轴是不一样的,在这种情况线需要使用多坐标轴。

使用多坐标轴

QChart中图表序列,通常需要绑定两个坐标轴(水平X轴,垂直Y轴),对X轴和Y轴的绑定是分离的,这样为多坐标轴的使用提供极大的灵活性,最常见的应用是,两组图表序列数据共用一个坐标轴(比如X轴),另一个坐标做则是各种独立的,一个坐标轴的刻度的信息显示在左边,另一个坐标轴的刻度和信息显示在右边。

多坐标轴示例

示例显示了如何创建具有两个垂直轴的简单图表,完整代码如下:

importsys from PyQt5.QtCore import Qt, QPointF from PyQt5.QtGui import QPainter from PyQt5.QtWidgets import QApplication, QMainwindow, QMessageBox from PyQt5.QtChart import QChart, QChartView, QSplineSeries, QCategoryAxis, QValueAxis class DemoMultipleAxes(QMainWindow): def __init__(self, parent=None): super(DemoMultipleAxes, self).__init__(parent) # 设置窗口标题 self.setWindowTitle('实战 Qt for Python: 多坐标轴演示') # 设置窗口大小 self.resize(480, 360) self.createChart() def createChart(self): #创建图表 chart = QChart() chart.legend().hide() chart.setTitle('多坐标轴图表示例') #添加x坐标轴 axisX = QValueAxis() axisX.setTickCount(10) chart.addAxis(axisX, Qt.AlignBottom) #添加样条线1 series = QSplineSeries() series << QPointF(1, 5) << QPointF(3.5, 18) << QPointF(4.8, 7.5) << QPointF(10, 2.5) chart.addSeries(series) #添加左边y轴 axisY = QValueAxis() axisY.setLinePenColor(series.pen().color()) chart.addAxis(axisY, Qt.AlignLeft) series.attachAxis(axisX) series.attachAxis(axisY) #添加样条线2 series = QSplineSeries() series.append(QPointF(1, 0.5)) series.append(QPointF(1.5, 4.5)) series.append(QPointF(2.4, 2.5)) series.append(QPointF(4.3, 12.5)) series.append(QPointF(5.2, 3.5)) series.append(QPointF(7.4, 16.5)) series.append(QPointF(8.3, 7.5)) series.append(QPointF(10, 17)) chart.addSeries(series) #添加右边Y轴 axisY2 = QCategoryAxis() axisY2.append('低', 5) axisY2.append('中', 12) axisY2.append('高', 17) axisY2.setLinePenColor(series.pen().color()) axisY2.setGridLinePen(series.pen()) chart.addAxis(axisY2, Qt.AlignRight) series.attachAxis(axisX) series.attachAxis(axisY2) #图表视图 chartView = QChartView(chart) chartView.setRenderHint(QPainter.Antialiasing) self.setCentralWidget(chartView) if__name__=='__main__': app=QApplication(sys.argv) window=DemoMultipleAxes() window.show() sys.exit(app.exec())

运行结果如下图:

pyqt 柱状图(154-QChart图表之多坐标轴图表)(2)

QChart多坐标轴示例

本文知识点

请多多关注,评论,收藏,点赞,和转发。


前一篇: 实战PyQt5: 153-QChart图表之对数坐标轴

,