我正在尝试修复python如何绘制数据。
说
x = [0,5,9,10,15]
和
y = [0,1,2,3,4]
然后我会做:
matplotlib.pyplot.plot(x,y) matplotlib.pyplot.show()
并且x轴的刻度线以5的间隔绘制。是否有办法使其显示1的间隔?
你可以使用以下命令显式设置要在刻度线打勾的位置plt.xticks:
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)它们是浮点数而不是整数。)
np.arange
min(x)
max(x)
的plt.plot(或ax.plot)功能将自动设置默认x和y限制。如果你希望保留这些限制,而只是更改刻度线的步长,则可以ax.get_xlim()用来发现Matplotlib已设置的限制。
plt.plot
ax.plot
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()