Ich möchte über Listen iterieren und einen Boxplot jeder Liste plotten. Da die Daten nicht alle in den Speicher passen, kann ich keine vordefinierte Anzahl von Boxplots zuweisen. Daher verwende ich die Subplot-Funktion, um Plots iterativ hinzuzufügen.matplotlib subplot boxplot versteckt einige Achsenbeschriftungen
Mein Problem ist, dass die Achsenbeschriftungen nicht mit dem Boxplot zum Plot hinzugefügt werden, und nur das letzte Etikett wird angezeigt. Wie ist es möglich, Boxplots iterativ mit Subplot zu beschriften?
Ein vereinfachtes Beispiel von dem, was ich tun möchte, ist unten. Obwohl ich in Wirklichkeit die gleiche Liste in einer Schleife rezykliere, anstatt über eine Liste von Listen zu iterieren, dient sie zur Veranschaulichung des Problems. Wie zu sehen ist, wird nur 'lb' in der yaxis gesetzt und die Grafik zeigt nicht 'la' für den ersten unteren Boxplot,
Danke.
%matplotlib inline
import matplotlib.pyplot as plt
la = [24, 28, 31, 34, 38, 40, 41, 42, 43, 44]
lb = [5, 8, 10, 12, 15, 18, 21, 25, 30, 39]
names = ['la', 'lb']
myList = [la] + [lb]
myList
# set fig for boxplots
fig, ax = plt.subplots(sharex=True)
# Add a horizontal grid to the plot
ax.xaxis.grid(True, linestyle='-', which='major', color='lightgrey', alpha=0.5)
ax.set_axisbelow(True)
ax.set_title('Some Title')
for i,l in enumerate(myList):
ax.boxplot(l, vert=False, positions = [i])
ax.set_yticklabels([names[i]])
ax.set_ylim(-0.5, len(myList)-0.5)
Großen. Ich hatte vorher schon etwas ähnliches versucht, aber ohne auch die Ticks zu setzen, war das Ergebnis dasselbe wie in meiner Frage. Ich zitiere also Ihren Satz "Sie müssen auch sicherstellen, dass beide Etiketten tatsächlich Ticks haben." wie nötig, um den Trick zu machen. – PedroA
tat es tatsächlich. Erledigt. – PedroA