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
相关产品推荐
相关产品推荐

