2016-06-06 22 views
1

У меня есть матрица numpy fooarray размером 138 x 138. Каждая запись в строке и столбце - это слово. Следующий код используется для создания тепловой карты той же матрицы. Но я не могу показать все слова в сюжете.создание тепловой карты с matplotlib

Похоже, что показанные значения также неверны в цветовой гамме. В то время как значения в матрице варьируются от 3,2 до -0,2, значения, показанные в тепловом отображении, составляют от 0,1 до -0,1. Как мне построить карту памяти с матрицей numpy?

fig = plt.figure() 
ax = fig.add_subplot(111) 

cax = ax.matshow(fooarray, interpolation='nearest', cmap='hot') 
fig.colorbar(cax) 

ax.set_xticklabels([' | '] + labels) 
ax.set_yticklabels(['|'] + labels) 

plt.show() 

enter image description here

ответ

3

Я не ясно, почему вы добавляете [»| '] и [' | '] перед метками, поэтому я удалил его из кода. Цветовая шкала работает для меня (см. Код), я считаю, что что-то не так с вашими данными.

Код, указанный ниже, устанавливает отметки с set_xticks и наклейками с ax.set_xticklabels. Я добавил поворот на 90 градусов, но все еще трудно получить читаемые ярлыки с 138 тиками.

import numpy as np 
import matplotlib.pyplot as plt 

#create test data: 
s=138 #size of array 
labels=[str(a) for a in range(s)] 
fooarray=np.random.random(s*s).reshape((s,s)) 

#--- original code here: 
fig = plt.figure() 
ax = fig.add_subplot(111) 

cax = ax.matshow(fooarray, interpolation='nearest', cmap='hot') 
fig.colorbar(cax) 
#---- 

#ticks and labels: 
ax.set_xticks(range(len(labels)) , minor=False) 
ax.set_xticklabels(labels) 
ax.set_yticks(range(len(labels)) , minor=False) 
ax.set_yticklabels(labels) 
plt.xticks(rotation=90) 

plt.show() 
Смежные вопросы