Вот одно решение, использующее некоторые случайные данные для демонстрационных целей. Идея заключается в следующем:
- Получить существующие галочки и их ярлыки с цветовой шкалы
- Добавьте две отметки и метки в минимальных и максимальных значениях
- Установите новые галочки и новые метки
import numpy as np
import matplotlib.pyplot as plt
import matplotlib
data = np.random.randint(0, 50000, (50,50))
minVal = np.min(data[np.nonzero(data)])
maxVal = np.max(data[np.nonzero(data)])
print (minVal, maxVal)
# 4, 49983
fig, ax = plt.subplots()
im = ax.imshow(data, cmap='Purples', interpolation='nearest',
norm=matplotlib.colors.LogNorm(), vmin=minVal,vmax = maxVal,)
cbar = fig.colorbar(im)
# Get the default ticks and tick labels
ticklabels = cbar.ax.get_ymajorticklabels()
ticks = list(cbar.get_ticks())
# Append the ticks (and their labels) for minimum and the maximum value
cbar.set_ticks([minVal, maxVal] + ticks)
cbar.set_ticklabels([minVal, maxVal] + ticklabels)