How to refresh text in Matplotlib?
<p>I wrote this code to read data from an excel file and to plot them. For a certain x-value, I desire to know the y-values of all the lines so I create a slider to change this x-value but I'm not able to refresh the text which prints the y-value.</p>

<p>The code is this</p>

<pre><code>import numpy as np
from openpyxl import load_workbook as ld
import matplotlib
matplotlib.use('TkAgg')
import matplotlib.pyplot as plt
from matplotlib.widgets import Slider

wb = ld(filename='example.xlsx')
data = wb['data']
time = wb['time']
row = data.max_row
column = data.max_column
x = np.ones((row, column))
y = np.ones((row, column))
result = np.ones(row)
for i in range(0, row):
    for j in range(0, column):

        x[i][j] = time.cell(row=i+1, column=j+1).value
        y[i][j] = data.cell(row=i+1, column=j+1).value


fig, ax = plt.subplots()
plt.subplots_adjust(left=0.25, bottom=0.25)
plt.plot(x[0], y[0], label='line1')
plt.plot(x[1], y[1], label='line2')
plt.plot(x[2], y[2], label='line3')
line, = plt.plot((np.amin(x), np.amin(x)), (np.amin(y), np.amax(y)))
plt.legend()
plt.grid(True)


axtime = plt.axes([0.25, 0.1, 0.65, 0.03])
stime = Slider(axtime, 'time', np.amin(x), np.amax(x), valinit=np.amin(x))


def y_text(r):
    ax.text(10, 8, str(r), style='italic')


def find(t):
    global x, y, result

    for i in range(0, row):
        for j in range(0, column):

            if x[i][j] == t or (t &lt; x[i][j] and j == 0) or (t &gt; x[i][j] and j == column):
                result[i] = y[i][j]
            elif x[i][j] &lt; t &lt; x[i][j+1]:
                result[i] = ((t-x[i][j])/(x[i][j+1]-x[i][j]))*(y[i][j+1]-y[i][j])+y[i][j]
    return result


def update(val):
    line.set_xdata(stime.val)
    find(stime.val)
    y_text(stime.val)
    fig.canvas.draw()
stime.on_changed(update)


plt.show()
</code></pre>

<p>and the result is this</p>

<p><a href="https://i.stack.imgur.com/ZVRRP.png" rel="noreferrer"><img src="https://i.stack.imgur.com/ZVRRP.png" alt="enter image description here"></a></p>

<p>As you can see the text is overwritten.</p>