Python / Matplotlib – диапазон и отображаемые значения Colorbar

При использовании matplotlib с контурным графиком у меня возникают проблемы с отображением цветной панели, как я хочу. Я прочитал множество подобных примеров, но до сих пор не смог получить то, что хочу.

На изображении ниже я хочу изменить две вещи. Я хочу, чтобы минимальное значение и максимальные значения отображались на цветовой полосе (максимальный должен быть 2.0 и min -0.1). Эти два значения должны быть на самом краю цветной панели. Кроме того, я хочу, чтобы цветная панель отображала значение при каждом цветовом переходе. Например. на графике ниже, между 2.1 и 1.8, есть другой цветовой переход, где значение не отображается.

Кто-нибудь может мне помочь, пожалуйста! Я думаю, мне, возможно, придется использовать норму, но пока это не сработало.

Благодаря,

введите описание изображения здесь

Код:

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() 

    Если я правильно понимаю, что вы хотите, я думаю, что это должно сделать это:

     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]]) v = np.linspace(-.1, 2.0, 15, endpoint=True) plt.contour(xi, yi, zi, v, linewidths=0.5, colors='k') plt.contourf(xi, yi, zi, v, cmap=plt.cm.jet) x = plt.colorbar(ticks=v) print x plt.show() 

    введите описание изображения здесь