Python 向seaborn箱线图添加自定义图例

Python 向seaborn箱线图添加自定义图例,python,matplotlib,seaborn,boxplot,Python,Matplotlib,Seaborn,Boxplot,我使用seaborn生成M个方法的N个箱线图,然后用相同的颜色为每个方法的箱线图上色。现在我只想添加一个图例,用不同的颜色显示M个方法的名称(例如红色线方法a、蓝色线方法B等等)。有什么快速的方法吗 bplot = sns.boxplot(data=[d for d in data]) colors = ["red", "green", "blue"] color_counter = 0 for i in range(len(data)-len(c)): mybox =

我使用seaborn生成M个方法的N个箱线图,然后用相同的颜色为每个方法的箱线图上色。现在我只想添加一个图例,用不同的颜色显示M个方法的名称(例如红色线方法a、蓝色线方法B等等)。有什么快速的方法吗

bplot = sns.boxplot(data=[d for d in data])   
colors = ["red", "green", "blue"]    
color_counter = 0
for i in range(len(data)-len(c)): 
    mybox = bplot.artists[i]
    mybox.set_facecolor(colors[color_counter])
    color_counter = color_counter + 1
    if color_counter == len(methods): 
        color_counter=0   
# COMMENTING NEXT CODE BLOCK AS IT OUTPUTS TEXT ASSOCIATED TO GRAY LINES (I want them to be colored instead) 
# leg = plt.legend(labels=[method for method in methods])
# for legobj in leg.legendHandles:
#     legobj.set_linewidth(12.0)
# params = {'legend.fontsize': 80}
# plt.rcParams.update(params)
plt.legend()  
plt.title('Title')
plt.show()

Matplotlib允许您创建自定义图例,其中包含您想要的任何内容

对于你的情况,你会创造一些

从matplotlib.lines导入Line2D
将matplotlib.pyplot作为plt导入
图例元素=[Line2D([0],[0],color='red',lw=4,label='Method 1'),
Line2D([0],[0],颜色为绿色,lw=4,标签为方法2'),
Line2D([0],[0],颜色为蓝色,lw=4,标签为方法3')]
#创建图形
图,ax=plt.子批次()
ax.legend(句柄=图例元素,loc='center')
plt.show()

为什么不在测量中使用数据框之类的东西,然后使用列的值添加颜色?例如,一列可以是所有度量值,另一列可以是每个度量值旁边的方法名称。根据这里的例子:Hi@Bar出于各种原因,我的数据不是数据帧。我可以自己做任何事情,但只需要用颜色来描绘一个传奇(我知道)。你知道有什么快速的解决方法吗?