Отображение суммы строк на дополнительной шкале цветов при построении матрицы - PullRequest
1 голос
/ 01 августа 2020

Я рисую матрицу, используя matshow. У меня есть массив

sum = np.sum(A, axis=0)   

. Я хотел бы отобразить значения, хранящиеся в sum, в качестве вторичной легенды.

import numpy as np
import matplotlib.pyplot as plt
plt.ion()
A = np.arange(0,100).reshape(10,10)
plt.matshow(A)   
plt.colorbar()

Я хотел бы знать, как добавить вторичный легенда к приведенному выше коду.

например, ожидаемый результат:

введите описание изображения здесь

Легенда справа создается автоматически. Под вторичной легендой я подразумеваю цветовую шкалу, отображаемую внизу. Например, это может соответствовать сумме значений в каждом столбце (записи оси Y).

1 Ответ

1 голос
/ 06 августа 2020

Я думаю, вам нужно пересмотреть, почему вам нужно представлять сумму столбцов на шкале цветов. Поскольку цвет на палитре представляет собой значение в матрице. Значение суммы столбца даже не включено, что означает отображение суммы столбца с цветной полосой?

import numpy as np
import matplotlib.pyplot as plt

plt.ion()

fig, ax = plt.subplots(figsize=(4,4))

A = np.arange(0,100).reshape(10,10)

column_sum = A.sum(axis=0)

im2 = ax.matshow(np.expand_dims(column_sum, axis=0))
# Override upper matrix
im = ax.matshow(A)

fig.colorbar(im2, orientation="horizontal") # Note: the color in this color bar represents value in im2, im2 is override by im. To distinguish it from im, you may interested in https://matplotlib.org/gallery/images_contours_and_fields/custom_cmap.html
fig.colorbar(im)

введите описание изображения здесь

...