Sur la base de cette question sur les cartes thermiques dans matplotlib , je voulais déplacer les titres de l'axe des x vers le haut du graphique.
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()
Cependant, l'appel de set_label_position de matplotlib (comme indiqué ci-dessus) ne semble pas avoir l'effet souhaité. Voici ma sortie:
Qu'est-ce que je fais mal?
python
matplotlib
plot
data-visualization
Jason Sundram
la source
la source
Vous voulez
set_ticks_position
plutôt queset_label_position
:Cela me donne:
la source
tick_params est très utile pour définir les propriétés des ticks . Les étiquettes peuvent être déplacées vers le haut avec:
la source
False
etTrue
respectivement, sinon fonctionne parfaitement!Vous devez faire un massage supplémentaire si vous voulez que les tiques (pas les étiquettes) apparaissent en haut et en bas (pas seulement en haut). La seule façon dont je pourrais faire cela est avec une modification mineure du code d'unutbu:
Production:
la source