Вы можете явно указать, где вы хотите отметить отметки с помощью plt.xticks
:
plt.xticks(np.arange(min(x), max(x)+1, 1.0))
Например,
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
] использовался вместо функции range
на Python только в том случае, если min(x)
и max(x)
являются поплавками вместо ints.)
Функция plt.plot
(или ax.plot
) будет автоматически установите ограничения по умолчанию x
и y
. Если вы хотите сохранить эти ограничения и просто измените настройку меток, вы можете использовать ax.get_xlim()
, чтобы узнать, какие ограничения уже установлены Matplotlib.
start, end = ax.get_xlim()
ax.xaxis.set_ticks(np.arange(start, end, stepsize))
Фиксатор тиков по умолчанию должен делать приличное задание, округляя значения тика до разумного количества значащих цифр. Однако, если вы хотите получить больше контроля над форматом, вы можете определить свой собственный форматтер. Например,
ax.xaxis.set_major_formatter(ticker.FormatStrFormatter('%0.1f'))
Вот пример выполнения:
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()