matplotlib contourf: get Z value under cursor

The text that shows the position of the cursor is generated by ax.format_coord. You can override the method to also display a z-value. For instance,

import matplotlib.pyplot as plt
import numpy as np
import scipy.interpolate as si
data = np.arange(16).reshape(-1, 4)
X, Y = np.mgrid[:data.shape[0], :data.shape[1]]
cs = plt.contourf(X, Y, data)

func = si.interp2d(X, Y, data)
def fmt(x, y):
    z = np.take(func(x, y), 0)
    return 'x={x:.5f}  y={y:.5f}  z={z:.5f}'.format(x=x, y=y, z=z)


plt.gca().format_coord = fmt
plt.show()

The documentation example shows how you can insert z-value labels into your plot

Script: http://matplotlib.sourceforge.net/mpl_examples/pylab_examples/contour_demo.py

Basically, it's

plt.figure()
CS = plt.contour(X, Y, Z) 
plt.clabel(CS, inline=1, fontsize=10)
plt.title('Simplest default with labels')