Следующий код
import matplotlib.pyplot as plt
import numpy as np
from matplotlib import ticker
n = 50
A = np.tile(np.linspace(-26,-2,n),(n,1))
plt.figure()
plt.contourf(A)
plt.colorbar()
B = np.tile(np.logspace(-26,-2,n),(n,1))
plt.figure()
plt.contourf(B,locator=ticker.LogLocator())
plt.colorbar()
plt.show()
создает эти два графика:

Для линейного случая (первыйизображение), каждый цвет в цветовой шкале присутствует в изображении, а минимальное и максимальное значения A лежат соответственно в первом и последнем цветовом бункере (идущий снизу вверх).
Для регистрационного журнала (второйизображение), минимальные и максимальные значения цветовой шкалы больше не имеют смысла для меня.Минимальное значение B составляет 10 ^ -26, поэтому это значение лежит на границе между первым и вторым цветовым интервалом цветовой карты, но в изображении нет ни одного из этих двух первых цветов.Максимальное значение B составляет 10 ^ -2, и оно лежит на границе между предыдущими перед последними и предыдущими последними цветными ячейками, поэтому его можно рассмотреть в любом из них.Но тогда почему последняя (желтая) цветная корзина здесь, тем более что на изображении нет желтого?
Поэтому я считаю странным поведение пределов цветовой карты (для LogLocator) по умолчанию, потому что это не так.представитель реального (или, по крайней мере, приблизительного) диапазона данных (как в линейном случае), и он добавляет цветные ячейки (в этом случае 3: 2 ниже минимального и 1 выше максимального), которых нет на изображении.
Это ошибка или есть что-то, чего я не понял?
@ В приведенном ниже ответе ImportanceOfBeingErnest приведены выходные данные, которые мне нужны, но мне кажется, что мне не нужно этого делатьи что я могу ожидать того же поведения от карты цветов с линейными значениями, и от преобразователя цвета LogLocator.