📅  最后修改于: 2023-12-03 15:33:55.240000             🧑  作者: Mango
当使用PyQtGraph创建动态数据可视化时,我们需要实时获取图形项(例如曲线、散点图等)的转换项。这些转换项是根据图形项的坐标系和缩放参数计算出来的。PyQtGraph提供了很多方便的方法来获取这些转换项。
在PyQtGraph中,每个图形项都有自己的坐标系。可以使用Item.coordinate
属性来获取将覆盖整个项的坐标系对象。这个对象可以用来进行坐标变换,例如在本地和屏幕坐标系之间转换。
item = pg.PlotItem()
coord = item.coordinate()
在PyQtGraph中,坐标系的缩放比例决定了图形项的大小和位置。可以使用Item.getViewBox()
方法来获得当前图形项所在的视图框。然后可以使用视图框的viewRange()
方法来获取缩放比例。
item = pg.PlotItem()
viewbox = item.getViewBox()
scale = viewbox.viewRange()[0]
在PyQtGraph中,每个图形项都有自己的本地坐标系,它是相对于图形项的左上角计算的。可以使用Item.mapToView()
方法将本地坐标映射到视图框的坐标系中。
item = pg.PlotItem()
pt = item.mapToView(QtCore.QPointF(100, 100))
在PyQtGraph中,可以使用Item.mapToScene()
方法将本地坐标映射到场景坐标系中。然后可以使用场景坐标系的scenePos()
方法将坐标映射到屏幕坐标系中。
item = pg.PlotItem()
pt = item.mapToScene(QtCore.QPointF(100, 100))
screen_pos = item.scenePos() + pt
在PyQtGraph中,物理坐标是指相对于设备的坐标系,例如像素的坐标。可以使用Item.mapToScene()
方法将本地坐标映射到场景坐标系中。然后可以使用场景坐标系的mapToItem()
方法将坐标映射到设备坐标系中。
item = pg.PlotItem()
pt = item.mapToScene(QtCore.QPointF(100, 100))
device_pos = item.scene().views()[0].viewport().mapFromScene(pt)