Добавьте верхнюю и нижнюю метки значения на цветную полосу - PullRequest
0 голосов
/ 15 января 2019

Я хотел бы добавить верхние и нижние значения к моей цветовой шкале. Таким образом, диапазон, в котором верхнее значение является максимальным числом значений в моих данных, а нижний - это минимальное число моих данных

enter image description here

import numpy as np
import matplotlib.pyplot as plt
import matplotlib

data = np.genfromtxt("E:\\data\\data1.txt", delimiter="\t")
minVal =  np.min(data[np.nonzero(data)])
maxVal =  np.max(data[np.nonzero(data)])

fig, ax = plt.subplots()
im = ax.imshow(data, cmap='Purples',
           interpolation='nearest',
           norm=matplotlib.colors.LogNorm(),
           vmin=minVal,vmax = maxVal,    
               )

cbar = fig.colorbar(im)

print("min ",minVal)
print("max", maxVal)

plt.show()

1 Ответ

0 голосов
/ 15 января 2019

Вот одно решение, использующее некоторые случайные данные для демонстрационных целей. Идея заключается в следующем:

  • Получить существующие галочки и их ярлыки с цветовой шкалы
  • Добавьте две отметки и метки в минимальных и максимальных значениях
  • Установите новые галочки и новые метки

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)

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...