为什么 Python Matplotlib 条形图的 X 轴刻度显示奇怪且错误的负值?
Why is Python Matplotlib bar-chart's X axis ticks showing strange and wrong negative values?
当 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(试过几个不同的版本)的最新版本上都表现出类似的奇怪行为
Python 3.6.4 |Anaconda, Inc.| (default, Jan 16 2018, 18:10:19)
[GCC 7.2.0] on linux
Python 3.4.3 (default, Nov 17 2016, 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()
我在这里遗漏了什么明显的东西?
您的图右下角缺少“+4.4e4”。例如,刻度标签“-4”应读作:44000 - 4 = 43996
您的图表底部有 +4.4e4。如果这是真的,那么它似乎是正确的。 4.4e4 +4 = 44004 和 44000 - 10 = 43990。所以我对你的问题感到困惑,因为情节比例似乎是正确的。
您需要禁用偏移量:
plt.ticklabel_format(useOffset=False)
另一种选择是输入自定义刻度标签:
plt.bar(x, y, tick_label=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(试过几个不同的版本)的最新版本上都表现出类似的奇怪行为
Python 3.6.4 |Anaconda, Inc.| (default, Jan 16 2018, 18:10:19) [GCC 7.2.0] on linux
Python 3.4.3 (default, Nov 17 2016, 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()
我在这里遗漏了什么明显的东西?
您的图右下角缺少“+4.4e4”。例如,刻度标签“-4”应读作:44000 - 4 = 43996
您的图表底部有 +4.4e4。如果这是真的,那么它似乎是正确的。 4.4e4 +4 = 44004 和 44000 - 10 = 43990。所以我对你的问题感到困惑,因为情节比例似乎是正确的。
您需要禁用偏移量:
plt.ticklabel_format(useOffset=False)
另一种选择是输入自定义刻度标签:
plt.bar(x, y, tick_label=x)