可以用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而不是Python的range函数,以防min(x)和max(x)是浮点数而不是整数。)
plt.plot(或ax.plot)函数将自动设置默认的x和y限制。如果希望保留这些限制,只需更改刻度线的步长,那么可以使用ax.get_xlim()来发现Matplotlib已经设置了哪些限制。start, end = ax.get_xlim()
ax.xaxis.set_ticks(np.arange(start, end, stepsize))
默认的tick格式化程序应该能够很好地将tick值舍入到一个合理的有效位数。但是,如果希望对格式有更多的控制,可以定义自己的格式化程序。例如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()