为什么plt.show()会显示一个额外的空白数字

the*_*ter 7 python plot matplotlib python-2.7

我使用python 2.7并试图绘制一个简单的百分位蝙蝠图表.

我得到了我想要的数字,问题在于,使用它时,当使用plt.show()时,我得到一个额外的空白图像,

我试了plt.close(),plt.clf()和plt.figure()来创建一个干净的plt对象,这是我的函数:

import matplotlib.pyplot as plt
plt.grid(True)
data = zip(*percentiles)

data = [list(i) for i in data]
tick_range = data[0]

ticks = [str(i) + "%" for i in tick_range]
tick_range = [x+2.5 for x in tick_range]

fig, ax = plt.subplots()
plt.bar(data[0], data[1], width=5)

plt.show()
Run Code Online (Sandbox Code Playgroud)

当i是索引时,数据(百分位数)变量具有以下结构[(i,v),(i,v)....],并且v是浮点值.

谢谢!

Sue*_*ver 6

问题在于plt.grid(True)对当前数字进行操作,并且由于当您到达该行时当前不存在数字,因此会自动创建一个数字.然后在打电话时创建另一个数字plt.subplots()

您应该创建绘图添加网格线

plt.bar(data[0], data[1], width=5)
plt.grid(True)

plt.show()
Run Code Online (Sandbox Code Playgroud)

或者,只需在bar不调用的情况下调用,subplots因为bar它将根据需要自动创建图形和轴.

plt.grid(True)
plt.bar(data[0], data[1], width=5)
plt.show()
Run Code Online (Sandbox Code Playgroud)

  • 仅当我执行 `fig, axes = plt.subplots(nrows=2, ncols=1, figsize=(17, 10))` 和 `plt.show()` 时,我已经有了一个额外的空白图!?使用 matplotlib 版本 1.5.3。我有什么错!? (3认同)