快捷搜索:  汽车  科技

pyqtgraph坐标设置(137-QChart图表之散点图)

pyqtgraph坐标设置(137-QChart图表之散点图)前一篇:实战PyQt5: 136-QChart图表之柱状图QChart散点图QScatterSeries常用信号:使用QScatterSeries创建一个散点序列,并为散点设置轮廓的类型和宽度。然后使用append()函数或者流的方式添加要显示的数据,并为散点3创建了一个星星样式的标记轮廓,然后将散点图添加到图表上,为图表设置标题,最后在图表视图上显示出来。完整代码如下:importsys math fromPyQt5.QtCoreimportQt QPointF fromPyQt5.QtGuiimportQPainter QImage QPainterPath QColor QBrush fromPyQt5.QtWidgetsimportQApplication QMainwindow fromPyQt5.QtChartimport(QChartView QChart QScatterS

pyqtgraph坐标设置(137-QChart图表之散点图)(1)

散点图(scatter chart)将序列显示为一组点。值由点在图表中的位置表示。类别由图表中的不同标记表示。散点图通常用于比较跨类别的聚合数据。在QChart中,使用类QScatterSeries创建散点图。

QScatterSeries

QScatterSeries类在散点图中显示数据。散点数据在图表上显示为点的集合。对于每个点,指定两个值来确定其在水平轴和垂直轴上的位置。下面的代码演示如何创建一个基本的散点图:

series = QScatterSeries() series.append(0 6) series.append(2 4) ... chart.addSeries(series)

QScatterSeries常用函数:

  • setBorderColor(self color):设置用于绘制标记边框的颜色。
  • setMarkerShape(self shape):设置用于渲染系列中的点的标记的形状。
  • setMarkerSize(self size):设置用于渲染系列中的点的标记的尺寸。
  • borderColor(self):获得用于绘制标记边框的颜色。
  • brush(self):获得用于绘制散布系列标记的笔刷。
  • markerShape(self):获得用于渲染系列中的点的标记的形状。
  • markerSize(self):获得用于渲染系列中的点的标记的尺寸。

QScatterSeries提供两种散点图轮廓样式,由枚举量QScatterSeries.MakerShape确定:

  • QScatterSeries.MarkerShapeCircle (0): 标记是一个圆圈。这是默认值。
  • QScatterSeries.MarkerShapeRectangle (1): 标记是一个矩形。

QScatterSeries常用信号:

  • borderColorChanged(self color):当线条(笔)颜色变为color时,发出此信号。
  • colorChanged(self color):当填充(画刷)颜色变为color时,发出此信号。
  • markerShapeChanged(self shape):当标记形状更改为shape时,将发出此信号。
  • markerSizeChanged(self size):当标记尺寸更改为size时,将发出此信号。
创建散点图

使用QScatterSeries创建一个散点序列,并为散点设置轮廓的类型和宽度。然后使用append()函数或者流的方式添加要显示的数据,并为散点3创建了一个星星样式的标记轮廓,然后将散点图添加到图表上,为图表设置标题,最后在图表视图上显示出来。完整代码如下:

importsys math fromPyQt5.QtCoreimportQt QPointF fromPyQt5.QtGuiimportQPainter QImage QPainterPath QColor QBrush fromPyQt5.QtWidgetsimportQApplication QMainwindow fromPyQt5.QtChartimport(QChartView QChart QScatterSeries QLegendMarker QLegend) classDemoChartScatter(QMainWindow): def__init__(self parent=None): super(DemoChartScatter self).__init__(parent) #设置窗口标题 self.setWindowTitle('实战QtforPython:QChart散点图演示') #设置窗口大小 self.resize(480 360) self.createChart() defcreateChart(self): #散点图 scatterSeries0=QScatterSeries() scatterSeries0.setName('散点1') scatterSeries0.setMarkerShape(QScatterSeries.MarkerShapeCircle) scatterSeries0.setMarkerSize(15.0) scatterSeries1=QScatterSeries() scatterSeries1.setName('散点2') scatterSeries1.setMarkerShape(QScatterSeries.MarkerShapeRectangle) scatterSeries1.setMarkerSize(20.0) scatterSeries2=QScatterSeries() scatterSeries2.setName('散点3') scatterSeries2.setMarkerShape(QScatterSeries.MarkerShapeRectangle) scatterSeries2.setMarkerSize(30.0) scatterSeries0.append(0 6) scatterSeries0.append(2 4) scatterSeries0.append(3 8) scatterSeries0.append(7 4) scatterSeries0.append(10 5) scatterSeries1<<QPointF(1 1)<<QPointF(3 3)<<QPointF(7 6)<<QPointF(8 3)<<QPointF(10 2) #scatterSeries1.append([QPointF(1 1) QPointF(3 3) QPointF(7 6) QPointF(8 3) QPointF(10 2)]) scatterSeries2<<QPointF(1 5)<<QPointF(4 6)<<QPointF(6 3)<<QPointF(9 5) #为散点2定制一个星星形状的标记形状 starPath=QPainterPath() starPath.moveTo(28 15) foriinrange(1 5): starPath.lineTo(14 14*math.cos(0.8*i*math.pi) 15 14*math.sin(0.8*i*math.pi)) starPath.closeSubpath() star=QImage(30 30 QImage.Format_ARGB32) star.fill(Qt.transparent) painter=QPainter(star) painter.setRenderHint(QPainter.Antialiasing) painter.setPen(QColor(0xf6a625)) painter.setBrush(painter.pen().color()) painter.drawPath(starPath) delpainter#必须这样强制释放painter scatterSeries2.setBrush(QBrush(star)) scatterSeries2.setPen(QColor(Qt.transparent)) #创建图表 chart=QChart() chart.addSeries(scatterSeries0) chart.addSeries(scatterSeries1) chart.addSeries(scatterSeries2) chart.setTitle('简单散点图示例') chart.createDefaultAxes() chart.setDropShadowEnabled(False) #设置图例上标记形状 chart.legend().setMarkerShape(QLegend.MarkerShapeFromSeries) #图表视图 chartView=QChartView(chart) chartView.setRenderHint(QPainter.Antialiasing) self.setCentralWidget(chartView) if__name__=='__main__': app=QApplication(sys.argv) window=DemoChartScatter() window.show() sys.exit(app.exec())

运行结果如下图:

pyqtgraph坐标设置(137-QChart图表之散点图)(2)

QChart散点图

本文知识点
  • 什么是散点图。
  • 使用QScatterSeries序列绘制散点图。
  • 为散点图定制标记样式。

前一篇:实战PyQt5: 136-QChart图表之柱状图


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

猜您喜欢: