我使用以下代码来生成同时有多条曲线的图表:
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')
有办法解决这个问题吗? 非常感谢。
最佳答案
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']]
关于python - 为绘制列表的曲线下面积着色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14205930/