Opierając się na tym pytaniu o mapy cieplne w matplotlib , chciałem przenieść tytuły osi x na górę wykresu.
import matplotlib.pyplot as plt
import numpy as np
column_labels = list('ABCD')
row_labels = list('WXYZ')
data = np.random.rand(4,4)
fig, ax = plt.subplots()
heatmap = ax.pcolor(data, cmap=plt.cm.Blues)
# put the major ticks at the middle of each cell
ax.set_xticks(np.arange(data.shape[0])+0.5, minor=False)
ax.set_yticks(np.arange(data.shape[1])+0.5, minor=False)
# want a more natural, table-like display
ax.invert_yaxis()
ax.xaxis.set_label_position('top') # <-- This doesn't work!
ax.set_xticklabels(row_labels, minor=False)
ax.set_yticklabels(column_labels, minor=False)
plt.show()
Jednak wywołanie funkcji set_label_position matplotlib (jak opisano powyżej) nie wydaje się przynosić pożądanego efektu. Oto mój wynik:
Co ja robię źle?
python
matplotlib
plot
data-visualization
Jason Sundram
źródło
źródło
Chcesz
set_ticks_position
zamiastset_label_position
:To daje mi:
źródło
tick_params jest bardzo przydatne przy ustawianiu właściwości tick_params . Etykiety można przenosić na górę za pomocą:
źródło
False
iTrue
odpowiednio, w przeciwnym razie działa idealnie!Musisz wykonać dodatkowe masowanie, jeśli chcesz, aby kleszcze (nie etykiety) pojawiły się na górze i na dole (nie tylko na górze). Jedyny sposób, w jaki mogłem to zrobić, to niewielka zmiana w kodzie unutbu:
Wynik:
źródło