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

Matplotlib图表Y轴未从0起始,仅显示对应数值问题求助

解决Matplotlib折线图Y轴不从0开始的问题

Matplotlib默认会根据你的数据自动缩放Y轴范围,所以当产水量最小值是108时,它就会从接近这个数值的位置起始,不会默认从0开始。你只需要手动指定Y轴的下限即可,以下是两种简单的实现方式:

方法一:直接用plt.ylim()设置

在plt.show()之前添加一行代码,强制Y轴从0开始:

import pandas as pd
import matplotlib.pyplot as plt
filename = "Waterproduction.csv"
data = pd.read_csv(filename, sep="\\t", encoding="Latin-1", engine="python")
year = data.iloc[:, 0]
water = data.iloc[:, 2]
plt.figure()
plt.plot(year, water, marker='o')
plt.xlabel("Years")
plt.ylabel("Waterproduction (mill. m³)") 
plt.title("Waterproduction")
# 添加这行,设置Y轴下限为0
plt.ylim(bottom=0)
plt.show() 

如果想让Y轴上限留一点余量,避免数据点贴到图表顶部,可以同时设置top参数,比如基于数据最大值调整:

plt.ylim(bottom=0, top=max(water)*1.1)

方法二:面向对象方式设置(更适合复杂绘图)

获取当前坐标轴对象,再设置Y轴范围:

import pandas as pd
import matplotlib.pyplot as plt
filename = "Waterproduction.csv"
data = pd.read_csv(filename, sep="\\t", encoding="Latin-1", engine="python")
year = data.iloc[:, 0]
water = data.iloc[:, 2]
plt.figure()
plt.plot(year, water, marker='o')
plt.xlabel("Years")
plt.ylabel("Waterproduction (mill. m³)") 
plt.title("Waterproduction")
# 获取当前坐标轴
ax = plt.gca()
# 设置Y轴下限为0
ax.set_ylim(bottom=0)
plt.show() 

内容的提问来源于stack exchange,提问作者Suf Suf

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 03:22:04