Python/Matplotlib - диапазон и отображаемые значения Colorbar
При использовании matplotlib с контурным графиком у меня возникает проблема с отображением цветной панели, как я хочу. Я прочитал множество подобных примеров, но до сих пор не смог получить то, что хочу.
На следующем изображении я хочу изменить две вещи. Я хочу, чтобы минимальное значение и максимальные значения отображались на цветовой полосе (максимальный должен быть 2.0 и min -0.1). Эти два значения должны быть на самом краю цветной панели. Кроме того, я хочу, чтобы цветная панель отображала значение при каждом цветовом переходе. Например. на графике ниже, между 2.1 и 1.8, есть другой цветовой переход, где значение не отображается.
Кто-нибудь может мне помочь? Я думаю, мне, возможно, придется использовать норму, но пока это не сработало.
Спасибо,
![enter image description here]()
код:
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()
Ответы
Ответ 1
Если я правильно понимаю, что вы хотите, я думаю, что это должно сделать это:
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()
![enter image description here]()