Hi,
Still needs a bit of polish, but how about:
from PyQt5 import QtWidgets
import pyqtgraph as pg
import numpy as np
class TestPlot(pg.GraphicsLayoutWidget):
def __init__(self):
super().__init__()
self.curveData = np.random.rand(200)
self.plotItem = self.addPlot()
self.plotDataItem = self.plotItem.plot(self.curveData)
self.plotHighlight = pg.ScatterPlotItem(size=10, pen={"color":
"#8080ff"}, brush="#000000")
self.plotItem.addItem(self.plotHighlight, ignoreBounds=True)
self.plotLabel = pg.TextItem("X", anchor=(0.5, 1.0))
self.plotItem.addItem(self.plotLabel, ignoreBounds=True)
self.selected_x_i = 0
# Create the infinite line to indicate an x coordinate
self.crosshairx = pg.InfiniteLine(angle=90, movable=False, pen={
"color": "#8080ff"})
self.plotItem.addItem(self.crosshairx, ignoreBounds=True)
self.signalproxy = pg.SignalProxy(self.plotItem.scene().
sigMouseMoved, rateLimit=60, slot=self.mouseMoved)
def mouseMoved(self, event):
pos = event[0] ## using signal proxy turns original arguments into
a tuple
if self.plotItem.sceneBoundingRect().contains(pos):
mousePoint = self.plotItem.getViewBox().mapSceneToView(pos)
index = int(mousePoint.x())
if (index > 0 and index < self.curveData.shape[0] and
mousePoint.y() >= self.plotItem.getViewBox().viewRange()[1][
0] and
mousePoint.y() <= self.plotItem.getViewBox().viewRange()[1][
1]):
#self.crosshairx.label.setFormat("{:0.2f}".format(self.curveData[index]))s
self.crosshairx.setPos(mousePoint.x())
self.plotHighlight.setData([index], [self.curveData[index]])
self.plotLabel.setPos(index, self.curveData[index])
self.plotLabel.setText("{:0.2g}".format(self.curveData[index
]))
else:
# Could proably hide the crosshair in better way...
self.crosshairx.setPos(self.plotItem.getViewBox().viewRange
()[0][0] - 1)
self.plotHighlight.clear()
self.plotLabel.setText("")
def main():
import sys
app = QtWidgets.QApplication(sys.argv)
mainwindow = TestPlot()
mainwindow.show()
sys.exit(app.exec_())
if __name__ == '__main__':
main()
Patrick
On Friday, 5 April 2019 01:44:18 UTC+10:30, Bobby Lucero wrote:
>
> [image: dashboard.png]
> The image above is an example of what i'd like to do
>
> Hello, i'd like to get the data at a certain point where my mouse is
> hovered over the graph. I'm trying to get the circle to hover over the data
> point where the mouse is, as demonstrated in the screenshot. I already have
> code to track the mouses position, I just have no idea to get the actual
> plot data where the mouse is.
>
> Any help would be greatly appreciated.
>
--
You received this message because you are subscribed to the Google Groups
"pyqtgraph" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/pyqtgraph/deddfe62-8d22-4d7e-ac5e-f4ac7b364d48%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.