如何设置Matplotlib图表Y轴上限大于数据极值?
如何强制Matplotlib图表Y轴刻度显示到指定上限
问题
我需要对比冒泡排序和选择排序在不同输入量下的运行时间图表,冒泡排序的Y轴上限是200,但选择排序的Y轴仅显示到数据最大值94。尝试用ax.set_ylim(top=200)无效,因为数据极值小于200时,Y轴不会显示到200刻度。
解决方案
要强制Y轴显示到指定上限,需明确设置Y轴的完整范围,而非仅设置上限。可使用以下两种方式:
- 直接调用pyplot的
ylim()函数,指定上下限:
plt.ylim(bottom=0, top=200)
- 面向对象方式获取轴对象后设置范围:
ax = plt.gca() ax.set_ylim(bottom=0, top=200)
无论数据最大值是多少,Y轴都会从0延伸到200,并显示200的刻度标记。
修改后的选择排序代码
n = [] for i in range(13): n.append(i*1000) t = [0,1,3,6,11,17,24,33,43,54,66,80,94] plt.plot(n,t,'s') plt.plot(n,t) plt.title('Time Complexity Analysis of Selection Sort') plt.xlabel('Number of Inputs') plt.ylabel('Time Taken') # 强制Y轴范围为0到200 plt.ylim(0, 200) plt.show()
补充说明
仅设置top=200时,Matplotlib会保留自动调整的下限和刻度逻辑,若数据最大值远小于200,刻度可能不会包含200。明确指定上下限后,图表会严格遵循设定的范围展示刻度。
内容的提问来源于stack exchange,提问作者Sukumar Rastogi
相关产品推荐
相关产品推荐

