我试图用置信带绘制一些数据.我这样做的每个数据流有两个图:plot和fill_between.我希望图例看起来类似于图表,其中每个条目都有一个框(置信区域的颜色),中间有一条较暗的实线.到目前为止,我已经能够使用补丁来创建矩形图例键,但我不知道如何实现中心线.我尝试使用舱口,但无法控制位置,厚度或颜色.
我最初的想法是尝试组合两个补丁(Patch和2DLine);然而,它还没有奏效.有更好的方法吗?我的MWE和当前数字如下所示.
import matplotlib.patches as mpatches
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(0,1,11)
y = np.linspace(0,11)
plt.plot(x,y,c='r')
plt.fill_between(x,y-0.2,y+0.2,color='r',alpha=0.5)
p = mpatches.Patch(color='r',alpha=0.5,linewidth=0)
plt.legend((p,),('Entry',))
最佳答案
解决方案借鉴了CrazyArm的评论,在这里找到:Matplotlib,legend with multiple different markers with one label.显然你可以制作一个句柄列表,只分配一个标签,它神奇地结合了两个句柄/艺术家.
import matplotlib.patches as mpatches
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(0,11)
p1,= plt.plot(x,c='r') # notice the comma!
plt.fill_between(x,alpha=0.5)
p2 = mpatches.Patch(color='r',linewidth=0)
plt.legend(((p1,p2),))