You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何设置Matplotlib图表Y轴上限大于数据极值?

如何强制Matplotlib图表Y轴刻度显示到指定上限

问题

我需要对比冒泡排序和选择排序在不同输入量下的运行时间图表,冒泡排序的Y轴上限是200,但选择排序的Y轴仅显示到数据最大值94。尝试用ax.set_ylim(top=200)无效,因为数据极值小于200时,Y轴不会显示到200刻度。

解决方案

要强制Y轴显示到指定上限,需明确设置Y轴的完整范围,而非仅设置上限。可使用以下两种方式:

  1. 直接调用pyplot的ylim()函数,指定上下限:
plt.ylim(bottom=0, top=200)
  1. 面向对象方式获取轴对象后设置范围:
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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 09:45:28