Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/288.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 为什么plt.show()显示一个额外的空白数字_Python_Python 2.7_Matplotlib_Plot - Fatal编程技术网

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

Python 为什么plt.show()显示一个额外的空白数字,python,python-2.7,matplotlib,plot,Python,Python 2.7,Matplotlib,Plot,我使用Python2.7并试图绘制一个简单的百分位bat图 我得到了我想要的数字,问题是,当使用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 =

我使用Python2.7并试图绘制一个简单的百分位bat图

我得到了我想要的数字,问题是,当使用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是索引,v是浮点值时,数据(百分位数)变量的结构如下[(i,v),(i,v)…]


谢谢

问题是,
plt.grid(True)
在当前图形上运行,并且当您到达该行时,当前不存在图形,因此会自动创建一个图形。然后在调用
plt.subplot()时创建另一个图形

创建绘图后,应添加网格线

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

plt.show()
或者,只需调用
bar
,而不调用
subplot
,因为
bar
将根据需要自动创建图形和轴

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

只有当我执行
fig时,axes=plt.subplot(nrows=2,ncols=1,figsize=(17,10))
plt.show()
已经给了我一个额外的空白图!?使用matplotlib版本1.5.3。我做错了什么!?