Seit Keine der oben genannten Lösungen für meinen Anwendungsfall funktionierte, biete ich hier eine Lösung mit None
(Wortspiel!), die an eine Vielzahl von Szenarien angepasst werden kann.
Hier ist ein Beispiel für einen Code, der unübersichtliche Häkchen auf beiden Seiten erzeugt X
y Y
Achsen.
# Note the super cluttered ticks on both X and Y axis.
# inputs
x = np.arange(1, 101)
y = x * np.log(x)
fig = plt.figure() # create figure
ax = fig.add_subplot(111)
ax.plot(x, y)
ax.set_xticks(x) # set xtick values
ax.set_yticks(y) # set ytick values
plt.show()
Jetzt bereinigen wir das Durcheinander mit einem neuen Diagramm, das nur einen spärlichen Satz von Werten auf der x- und y-Achse als Ticks anzeigt.
# inputs
x = np.arange(1, 101)
y = x * np.log(x)
fig = plt.figure() # create figure
ax = fig.add_subplot(111)
ax.plot(x, y)
ax.set_xticks(x)
ax.set_yticks(y)
# which values need to be shown?
# here, we show every third value from `x` and `y`
show_every = 3
sparse_xticks = [None] * x.shape[0]
sparse_xticks[::show_every] = x[::show_every]
sparse_yticks = [None] * y.shape[0]
sparse_yticks[::show_every] = y[::show_every]
ax.set_xticklabels(sparse_xticks, fontsize=6) # set sparse xtick values
ax.set_yticklabels(sparse_yticks, fontsize=6) # set sparse ytick values
plt.show()
Je nach Anwendungsfall kann man den obigen Code anpassen, indem man einfach die show_every
und verwenden Sie diese für das Sampling von Tick-Werten für X oder Y oder beide Achsen.
Wenn diese auf der Schrittweite basierende Lösung nicht passt, dann kann man auch die Werte von sparse_xticks
o sparse_yticks
in unregelmäßigen Abständen, wenn dies gewünscht ist.