为什么Python Matplotlib条形图的X轴刻度显示奇怪且错误的负值?
问题描述
为什么当X轴值的范围从43990到44003时,X轴刻度显示负值。
import matplotlib.pyplot as plt
x=[44000, 44001, 44002, 44003, 43990, 43991, 43992, 43993, 43994, 43995, 43996, 43997, 43998, 43999]
y=[8, 5, 3, 1, 1, 3, 4, 10, 4, 11, 4, 10, 17, 19]
plt.bar(x,y)
plt.show()
我看到了以下输出。我原本预计x轴的范围是43990到44003
我已经在几台机器上进行了尝试,在最新版本的python和matplotlib(尝试了几个不同的版本)上都显示出类似的奇怪行为
Python3.6.4|蟒蛇公司|(默认,2018年1月16日,18:10:19) [GCC 7.2.0]在Linux上
Python 3.4.3(默认,2016年11月17日01:08:31)
奇怪的是,许多琐碎的玩具示例x和y数组给出了我预期的数字。
例如,下面的代码片段显示了具有正确x轴刻度标签的预期图形
x=[20,30,90,70, 50, 60, 80, 70]
y=[3,2,5,10, 3, 9, 7, 6]
plt.bar(x,y)
plt.show()
我在这里漏掉了什么明显的东西?
解决方案
您需要禁用偏移量:
plt.ticklabel_format(useOffset=False)
另一种选择是输入自定义刻度标签:
plt.bar(x, y, tick_label=x)
相关文章