如何阻止Matplotlib绘图时Y轴自动偏移(取消零中心显示)
解决Matplotlib折线图Y轴自动偏移问题
当数据值非常接近某个常数(比如本例中接近1)时,Matplotlib会自动启用偏移量显示——把数据围绕0展示并在轴顶标注偏移值(如+1),目的是放大数据波动。如果不需要这个效果,可以通过以下两种方式禁用:
方法1:通过轴对象关闭偏移
先获取坐标轴对象,再修改格式化器的偏移设置:
import numpy as np import datetime import matplotlib.pyplot as plt vals = np.random.uniform(0.9999, 1.0001, 100) dates = [datetime.datetime.now() + datetime.timedelta(minutes=i) for i in range(len(vals))] # 创建画布和轴对象 fig, ax = plt.subplots() ax.plot(dates, vals) # 禁用Y轴的自动偏移 ax.get_yaxis().get_major_formatter().set_useOffset(False) plt.show()
方法2:使用全局ticklabel_format设置
直接调用plt.ticklabel_format,可指定仅针对Y轴禁用偏移:
import numpy as np import datetime import matplotlib.pyplot as plt vals = np.random.uniform(0.9999, 1.0001, 100) dates = [datetime.datetime.now() + datetime.timedelta(minutes=i) for i in range(len(vals))] plt.plot(dates, vals) # 仅禁用Y轴的自动偏移 plt.ticklabel_format(useOffset=False, axis='y') plt.show()
修改后,Y轴会直接显示数据的实际数值范围,不会再出现自动下移和+1偏移标识。
内容的提问来源于stack exchange,提问作者wspeirs
相关产品推荐
相关产品推荐

