小编典典
你可以使用以下命令显式设置要在刻度线打勾的位置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))
默认的刻度格式设置器应将刻度值四舍五入为有意义的有效数字位数。但是,如果希望对格式有更多控制,则可以定义自己的格式器。例如,
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()
2020-02-11