我的x和y轴通常分别从0到300和0到60。
然而,我想只显示从 5 <= x <= 300
的值,所以我这样做:
ax.set_xlim(left=5)
之后的图确实从5开始,但没有任何指示。我的x轴上第一个刻度是在50处,然后是100、150……y轴上的刻度标记为0、20、40、60,这很容易让观众误以为y轴的下限0也代表了x轴的下限0。
我该如何强制pyplot在x=5处显示额外的刻度,以便明确告知观众两个轴没有相同的下限0?
我的x和y轴通常分别从0到300和0到60。
然而,我想只显示从 5 <= x <= 300
的值,所以我这样做:
ax.set_xlim(left=5)
之后的图确实从5开始,但没有任何指示。我的x轴上第一个刻度是在50处,然后是100、150……y轴上的刻度标记为0、20、40、60,这很容易让观众误以为y轴的下限0也代表了x轴的下限0。
我该如何强制pyplot在x=5处显示额外的刻度,以便明确告知观众两个轴没有相同的下限0?
您可以使用xticks来设置x轴的刻度。以下是一个ipython会话:
In [18]: l = [random.randint(0, 10) for i in range(300)]
In [19]: plot(l)
Out[19]: [<matplotlib.lines.Line2D at 0x9241f60>]
In [20]: plt.xlim(xmin=5) # I set to start at 5. No label is draw
Out[20]: (5, 300.0)
In [21]: plt.xticks(arange(5, 301, 50)) # this makes the first xtick at left to be 5
# note the max range is 301, otherwise you will never
# get 300 even if you set the appropriate step
max - min / step
为整数值(刻度数)或非常接近整数值。In [38]: plt.xticks(arange(5, 301, 29.5))