Пример (обратите внимание, что выбор матрицы в качестве входных данных и построение графика с использованием plt.imshow() — это всего лишь пример. Меня интересует только объект cmap и результирующая цветовая шкала справа. Вы можно также подумать о других способах визуализации данных):
Код: Выделить всё
import numpy as np
import matplotlib.pyplot as plt
# Generate a matrix with lots of positive values and a few negative values
np.random.seed(42) # For reproducibility
shape = (20,20) # Shape of the matrix
a = 1 # Shape parameter (alpha)
scale = 2.0 # Scale parameter (beta)
matrix = np.random.gamma(a, scale, size=shape) # Create random numbers
matrix = matrix - 1 # We also want negative numbers
matrix = matrix * -1 # flip values so that lots of numbers are positive and few are negative
matrix[0,0:3] = 0 # some values should be set to exactly 0
matrix[1,0:3] = np.nan # some values should be np.nan
matrix = np.random.permutation(matrix.flatten()).reshape(matrix.shape)
cmap = 'RdBu_r' # Choose colorscale
# plot matrix and colorscale
plt.figure(figsize=(8, 6))
plt.imshow(matrix, cmap="RdBu_r")
plt.colorbar(label='Matrix')
Как видите, 0 здесь не соответствует белому цвету, а это то, что мне нужно.
Подробнее здесь: https://stackoverflow.com/questions/791 ... ches-the-n