나는 python과 matplotlib를 사용하여 설문지에서 얻은 답을 히트 맵으로 만들려고합니다.직사각형 배열과 matshow가있는 빈 공간
매트릭스는 15x30이어야하지만 결과는 30x30 매트릭스입니다.
결과 : wrong result
내 코드 : 나는 X_POS을 제거하면
import matplotlib.pyplot as plt
import numpy as np
from matplotlib.colors import ListedColormap
m = [[1,2,3,4,5,6,7,8,9,10,9,8,7,6,5],
[4,5,6,7,8,9,10,9,8,7,8,6,4,1,3],
[3,2,1,10,9,8,7,6,5,4,9,8,7,6,2],
[6,7,8,9,10,10,9,8,7,6,7,8,6,1,4],
[2,1,2,1,2,1,2,1,2,1,7,7,7,7,7],
[3,2,1,10,9,8,7,6,5,4,8,8,8,8,8],
[10,9,8,7,6,5,4,3,2,1,9,9,9,9,9],
[7,3,1,9,4,6,8,2,5,10,4,4,4,5,7],
[1,1,2,3,5,8,5,3,2,1,1,1,1,4,7],
[7,8,10,9,8,7,6,5,4,3,9,9,9,9,9],
[1,2,3,4,5,6,7,8,9,10,9,8,7,6,5],
[4,5,6,7,8,9,10,9,8,7,8,6,4,1,3],
[3,2,1,10,9,8,7,6,5,4,9,8,7,6,2],
[6,7,8,9,10,10,9,8,7,6,7,8,6,1,4],
[2,1,2,1,2,1,2,1,2,1,7,7,7,7,7],
[3,2,1,10,9,8,7,6,5,4,8,8,8,8,8],
[10,9,8,7,6,5,4,3,2,1,9,9,9,9,9],
[7,3,1,9,4,6,8,2,5,10,4,4,4,5,7],
[1,1,2,3,5,8,5,3,2,1,1,1,1,4,7],
[7,8,10,9,8,7,6,5,4,3,9,9,9,9,9],
[1,2,3,4,5,6,7,8,9,10,9,8,7,6,5],
[4,5,6,7,8,9,10,9,8,7,8,6,4,1,3],
[3,2,1,10,9,8,7,6,5,4,9,8,7,6,2],
[6,7,8,9,10,10,9,8,7,6,7,8,6,1,4],
[2,1,2,1,2,1,2,1,2,1,7,7,7,7,7],
[3,2,1,10,9,8,7,6,5,4,8,8,8,8,8],
[10,9,8,7,6,5,4,3,2,1,9,9,9,9,9],
[7,3,1,9,4,6,8,2,5,10,4,4,4,5,7],
[1,1,2,3,5,8,5,3,2,1,1,1,1,4,7],
[7,8,10,9,8,7,6,5,4,3,9,9,9,9,9]]
person = []
p = 1
for column in m:
person.append('person' + str(p))
p += 1
x_pos = np.arange(len(person))
question = []
i = 1
for row in m:
question.append('question' + str(i))
i += 1
y_pos = np.arange(len(question))
Cmap =plt.get_cmap('RdYlGn' , np.max(m)-np.min(m)+1)
mat = plt.matshow(m,cmap=Cmap,vmin = np.min(m)-.5, vmax = np.max(m)+.5)
cax = plt.colorbar(mat, ticks=np.arange(np.min(m),np.max(m)+5))
plt.xticks(x_pos, question, rotation=90)
plt.yticks(y_pos, person)
plt.show()
print(person)
print(question)
내가 바로 매트릭스를 얻을 수 있지만, 다음에 레이블이 없습니다. 내가 수동으로
Question = ['Question 1', 'Question 2',...]
추천 라벨을 만들 경우 그럼 난 단지 아직 30x30matrix 15 개 레이블을 얻을 수 있지만.
내 코드에서이 문제의 원인은 무엇입니까? 어떻게 해결할 수 있습니까?
일반 코드 피드백도 문제가 실제로하고있는 것보다 뭔가 다른 일을하는 것이 좋습니다 루프의 두 가지에있다
당신의 설명은 매우 간결하고 명확하다, 감사합니다! –