How can I get variable values from a plot?
It seems what you are looking for is a function of your data, not of matplotlib. I would think of this as a second derivative problem -- you care about differences in slopes of successive lines.


Sort a dataframe [x,y] by x values, in increasing order.
Calculate the first discrete derivative delta1 = (y[i+1] - y[i]) / (x[i+1] - x[i]). This tells you the slope of each line.
Now you can do one of two things, depending on what you want to identify.


Calculate the second discrete derivative delta2 = (delta1[i+1] - delta1[i]) / (x[i+1] - x[i]). 
Calculate the difference of successive slopes diff = delta1[i+1] - delta1[i]

Select all is for which absolute value of {diff or delta2} is greater than a certain threshold.


Selecting all x values for which np.abs(x[i]) &gt; threshold will give you the x-locations of these large changes in slope. 

Here's an example I just coded up,for identifying the jump in a jump function $x / |x|$.

import numpy as np
import pandas as pd

n_data = 100

x = np.random.uniform(-10,10,n_data)
y = x / np.abs(x)

delta = [0] * n_data
diff = [0] * n_data

data = pd.DataFrame({'x':x, 'y':y})
data = data.sort_values('x')

for i in range(n_data - 1):
    a, fa = data.iloc[i]
    b, fb = data.iloc[i+1]
    diff_quot = (fb - fa) / (b-a)
    delta[i] = diff_quot

data['delta'] = delta

for i in range(n_data - 1):
    a, fa, da = data.iloc[i]
    b, fb, db = data.iloc[i+1]
    dd = db - da
    diff[i] = np.abs(dd)

data['diff'] = diff

plt.plot(data['x'],data['y'])
plt.plot(data['x'],data['diff'])

threshold = 1
jumps = [dd &gt; threshold for dd in diff]


Here is the jump function, whose jump we might want to locate



Here is a graph of the differences in slopes, where we see the jump is located near x = 0