【发布时间】:2014-07-01 15:08:11
【问题描述】:
我正在用 pyqtgraph 画图:
wave = pg.PlotWidget(self, QtGui.QColor(0, 0, 0, 0))
wave.plot([1,2,3], [1,2,1], pen=(0,0,255), fillLevel=-0, brush=(255,215,0))
我想获取最后一个点 (3,1) 的像素坐标
我该怎么做?
【问题讨论】:
我正在用 pyqtgraph 画图:
wave = pg.PlotWidget(self, QtGui.QColor(0, 0, 0, 0))
wave.plot([1,2,3], [1,2,1], pen=(0,0,255), fillLevel=-0, brush=(255,215,0))
我想获取最后一个点 (3,1) 的像素坐标
我该怎么做?
【问题讨论】:
Qt 使用其QGraphicsItem.map* 方法使坐标系之间的映射变得简单。 PyQtGraph 用更多的pg.GraphicsItem.map* 方法进一步扩展了这些。你想要的工作是这样的:
>>> import pyqtgraph as pg
>>> plt = pg.plot()
>>> wave = plt.plot([1,2,3], [1,2,1])
>>> wave.mapToDevice(pg.Point(3, 1))
PyQt4.QtCore.QPointF(615.6409081308565, 438.7833653023292)`
【讨论】:
wave.getData() 返回最后显示的点(考虑到正在使用的下采样和裁剪选项)。否则,您可以通过wave.curve.xData 和.yData 访问原始数据。