我有一个用matplotlib生成的箱线图:
然而,我不知道如何生成图例。每当我尝试下面的方法时,我都会得到一个错误,说Legend does not support {boxes: ...
我已经做了相当多的搜索,似乎没有一个例子显示如何实现这一点。任何帮助都将不胜感激!
bp1 = ax.boxplot(data1, positions=[1,4], notch=True, widths=0.35, patch_artist=True)
bp2 = ax.boxplot(data2, positions=[2,5], notch=True, widths=0.35, patch_artist=True)
ax.legend([bp1, bp2], ['A', 'B'], loc='upper right')
2条答案
按热度按时间x759pob21#
boxplot
返回艺术家字典结果:dict
将箱线图的每个组件Map到创建的matplotlib.lines.Line2D示例列表的字典。该字典具有以下键(假设垂直箱线图):
boxes
:箱形图的主体,显示四分位数和中位数的置信区间(如果启用)。使用
boxes
,您可以获取图例艺术家,完整示例:
ar5n3qh52#
作为对@ImportanceOfBeingErnest的回应的补充,如果你在这样的for循环中绘图:
你不能将图保存为变量。因此,在这种情况下,创建图例标签列表
legends
,将图附加到另一个列表elements
中,并使用列表解析为每个图放置图例: