Python / Matplotlib - Rango de barra de colores y valores de visualización

Cuando uso matplotlib con un diagrama de contorno, tengo problemas para que la barra de colores se muestre como quiero. He leído numerosos ejemplos similares, pero aún no he podido obtener lo que quiero.

En la imagen de abajo, quiero cambiar dos cosas. Quiero que el valor mínimo y los valores máximos se muestren en la barra de color (el máximo debe ser 2.0 y el mínimo -0.1). Estos dos valores deben estar en el borde de la barra de colores. Además, quiero que la barra de colores muestre el valor en cada transición de color. Por ejemplo. En el gráfico a continuación, entre 2.1 y 1.8, hay otra transición de color donde el valor no se muestr

¿Alguien puede ayudarme por favor? Creo que necesito usar la norma, pero hasta ahora no me ha funcionado.

Gracias

Código

import numpy as np
import matplotlib.pyplot as plt

xi = np.array([0., 0.5, 1.0])
yi = np.array([0., 0.5, 1.0])
zi = np.array([[0., 1.0, 2.0],
               [0., 1.0, 2.0],
               [-0.1, 1.0, 2.0]])

plt.contour(xi, yi, zi, 15, linewidths=0.5, colors='k')
plt.contourf(xi, yi, zi, 15, cmap=plt.cm.jet)
plt.colorbar()
plt.show()

Respuestas a la pregunta(1)

Su respuesta a la pregunta