我使用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是浮点值。
谢谢!
答案 0 :(得分:6)
问题是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()