Sie können explizit festlegen, wo Sie Markierungen ankreuzen möchten, indem Sie plt.xticks
:
plt.xticks(np.arange(min(x), max(x)+1, 1.0))
Zum Beispiel,
import numpy as np
import matplotlib.pyplot as plt
x = [0,5,9,10,15]
y = [0,1,2,3,4]
plt.plot(x,y)
plt.xticks(np.arange(min(x), max(x)+1, 1.0))
plt.show()
( np.arange
wurde anstelle von Pythons range
Funktion nur für den Fall min(x)
y max(x)
sind Floats statt Ints).
En plt.plot
(oder ax.plot
) wird automatisch der Standardwert x
y y
Grenzen. Wenn Sie diese Grenzen beibehalten und nur die Schrittweite der Tickmarks ändern möchten, können Sie Folgendes verwenden ax.get_xlim()
um herauszufinden, welche Grenzen Matplotlib bereits gesetzt hat.
start, end = ax.get_xlim()
ax.xaxis.set_ticks(np.arange(start, end, stepsize))
Der Standard-Tick-Formatierer sollte die Tick-Werte auf eine vernünftige Anzahl signifikanter Stellen runden. Wenn Sie jedoch mehr Kontrolle über das Format haben möchten, können Sie Ihr eigenes Formatierungsprogramm definieren. Zum Beispiel,
ax.xaxis.set_major_formatter(ticker.FormatStrFormatter('%0.1f'))
Hier ist ein lauffähiges Beispiel:
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.ticker as ticker
x = [0,5,9,10,15]
y = [0,1,2,3,4]
fig, ax = plt.subplots()
ax.plot(x,y)
start, end = ax.get_xlim()
ax.xaxis.set_ticks(np.arange(start, end, 0.712123))
ax.xaxis.set_major_formatter(ticker.FormatStrFormatter('%0.1f'))
plt.show()