Wenn ich einen einzelnen imshow
-Plot zeichne, kann ich ihn verwenden
fig, ax = plt.subplots()
ax.imshow(data)
plt.xticks( [4, 14, 24], [5, 15, 25] )
um meine Xtick-Labels zu ersetzen.
Nun zeichne ich 12 imshow
-Diagramme mit
f, axarr = plt.subplots(4, 3)
axarr[i, j].imshow(data)
Wie kann ich meine Xticks nur für eine dieser Subplots ändern? Auf die Achsen der Unterpläne kann ich nur mit axarr[i, j]
zugreifen. Wie kann ich nur für ein bestimmtes Subplot auf plt
zugreifen?
Es gibt zwei Möglichkeiten:
ax.set_xticks
und ax.set_xticklabels
) oderplt.sca
, um die aktuellen Achsen für die Pyplot-Zustandsmaschine (d. H. Die plt
-Schnittstelle) festzulegen.Als Beispiel (dies veranschaulicht auch die Verwendung von setp
zum Ändern der Eigenschaften aller Unterzeichnungen):
import matplotlib.pyplot as plt
fig, axes = plt.subplots(nrows=3, ncols=4)
# Set the ticks and ticklabels for all axes
plt.setp(axes, xticks=[0.1, 0.5, 0.9], xticklabels=['a', 'b', 'c'],
yticks=[1, 2, 3])
# Use the pyplot interface to change just one subplot...
plt.sca(axes[1, 1])
plt.xticks(range(3), ['A', 'Big', 'Cat'], color='red')
fig.tight_layout()
plt.show()
Sehen Sie sich das (ziemlich) aktuelle answer im matplotlib-Repository an, in dem die folgende Lösung vorgeschlagen wird:
ax.set_xticklabels([1,4,5], fontsize=12)
ax.tick_params(axis="x", labelsize=12)
plt.setp(ax.get_xticklabels(), fontsize=12, fontweight="bold", horizontalalignment="left")
Anscheinend wie in der späteren Version von Matplotlib, werden die Funktionen set_yticks
und set_xticks
entfernt. Was ich tat, war, anstatt die Größe von x, y Häkchen einzustellen, habe ich nur die Zahlengröße geändert.
plt.figure(1, dpi=200, figsize=(20,20))
Ich weiß, es ist irgendwie anti-intuitiv, aber das hat bei mir funktioniert ... Lassen Sie mich wissen, ob es in den späteren Versionen von Matplotlib bessere Methoden gibt, um dieses Problem zu lösen. Vielen Dank