Im Moment sieht mein Code wie folgt aus:matplotlib Heatmap, anpassen y-Achse
#generate 262*20 elements
values = np.random.random(262*20).tolist()
# convert the list to a 2D NumPy array
values = np.array(values).reshape((262, 20))
h, w = values.shape
#h=262, w=20
fig = plt.figure(num=None, dpi=80,figsize=(9, 7), facecolor='w', edgecolor='k')
ax = fig.add_subplot(111)
#fig, ax = plt.subplots()
plt.imshow(values)
plt.colorbar()
plt.xticks(np.arange(w), list('PNIYLKCVFWABCDEFGHIJ'))
ax.set_aspect(w/h)
plt.show()
Das Grundstück sieht wie folgt aus:
Wie Sie sehen können, ist der Bereich der y-Achse 0-261.
Aber ich möchte meine Y-Achse von 26 bis 290 gehen, fehlt 57, 239 und 253. Also immer noch 262 insgesamt. Ich habe versucht, eine Liste wie folgt zu erstellen:
mylist =[26, 27, ......missing 57, 239, 253, ....290]
plt.yticks(np.arange(h), mylist)
Die Y-Achse sieht einfach wie alles zusammengequetscht zusammen.
Also habe ich versucht:
pylab.ylim([26, 290])
und es sieht wie folgt aus:
es So fühlt sich genau wie die Daten in der ersten Reihe immer entspricht [0], nicht auf [ 26]
Ich denke, dass Sie die Tick-Etiketten ändern müssen (siehe [hier] (https://matplotlib.org/api/_as_gen/ matplotlib.pyplot.xlabel.html? highlight = matplotlib% 20pyplot% 20xlabel # matplotlib.pyplot.xlabel)) und nicht die Ticks selbst. Die Ticks entsprechen den tatsächlichen Daten, und wenn Sie keine Daten aus dem Bereich 26-290 generieren, führt das einfache Ändern der Ticks nicht zum gewünschten Ergebnis. –