Hi,

You can connect to signals emitted by the infiniteline when it is moved. 
Example code snippet below:


# Assume plot data is stored in arrays of xcoords, yvalues
self.xcoords = np.linspace(0.1, 10, 10)
self.yvalues = np.log(self.xcoords)


# Create the infinite line to select an x coordinate, connect to its moved 
signal
self.crosshairx = pg.InfiniteLine(angle=90, movable=True)
self.crosshairx.sigPositionChanged.connect(self._crosshairx_changed)


# Keep track of index of currently selected x coordinate, so we can avoid 
doing
# unnecessary updates when the infiniteline changes but the index of the 
# closest x/y data point is still the same
self.selected_x_i = np.argmin(np.abs(self.xcoords - self.crosshairx.value
()))


# Slot to get y value of point closest to x value of the infinite line
def _crosshairx_changed(self):
    new_i = np.argmin(np.abs(self.xcoords - self.crosshairx.value()))
    if new_i != self.selected_x_i:
        self.selected_x_i = new_i
        # Do something interesting
        print(self.yvalues[self.selected_x_i])


Patrick

On Saturday, 1 December 2018 05:22:37 UTC+10:30, Jacob Bernard wrote:
>
> I have an infiniteline on my graph, and have figured out how to use value 
> to get the value of the current axis: 
>
> infline = pg.InfiniteLine(pos=1000, movable=True, label='{value:0.2fms}')
>
>
> However I would like to have my line vertically as it is now, but display 
> the y values of my curves. Is this possible? I know that if I make the line 
> horizontal it will give the y value, but I'd like for it to remain 
> vertical. 
>
>
>

-- 
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/f9728e66-2a5d-4ed2-98bc-4e845a919abd%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to