1

我正在使用以下代码生成同时有几条曲线的图形:

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')

有没有办法解决这个问题?非常感谢。

4

1 回答 1

1

plt.plot(a)等效 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']]
于 2013-01-08T00:14:06.497 回答