我使用以下代码生成一次有多条曲线的图形:
for i in data.find():
a=[]
for element in i["counts"]:
a.append(element["total"])
plt.plot(a)
plt.show()
我希望能够为每条曲线下的特定区域着色。比如说,对于曲线1,区间x:[3,21],x:[28,29]和x:[42,51]
我相信我不能使用以下变体,因为y不是x的函数。 y只是一个整数列表。
plt.fill_between(x,y,0,color='0.8')
有没有办法解决这个问题? 非常感谢。
答案 0 :(得分:1)
plt.plot(a)
是equivalent to plt.plot(np.arange(len(a)),a)
,通过它,您可以更轻松地了解如何使用fill_between
:
where = np.zeros(len(a),dtype=bool)
where[3:21] = True
plt.fill_between(np.arange(len(a)),a,where=where)
作为旁注,
a=[]
for element in i["counts"]:
a.append(element["total"])
通常更好地写作列表理解:
a = [element['total'] for element in i['counts']]