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



我使用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()
当 i 是

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

谢谢!

问题是plt.grid(True)对当前图形进行操作,并且由于当您到达该行时当前不存在图形,因此会自动创建一个图形。然后,当您调用plt.subplots()时,您将创建另一个图形

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

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

或者,只需调用bar而不调用subplots bar因为会自动根据需要创建图形和轴。

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

最新更新