如何在mpld3上使用交互式图例插件显示标签?

时间:2017-05-23 01:51:55

标签: python matplotlib jupyter mpld3

我正在关注显示here的代码,以显示实验结果。但是,我无法显示标签,交互性有效,但仍未显示标签。在这里,我将标签发送到插件,但我不知道我是否缺少一些布尔参数以允许显示标签。

handles, labels = ax.get_legend_handles_labels() # return lines and labels
interactive_legend = plugins.InteractiveLegendPlugin(zip(handles, ax.collections),
                                                     labels,
                                                     alpha_unsel=0,
                                                     alpha_over=0, 
                                                     start_visible=True)
plugins.connect(fig, interactive_legend)

任何想法都非常感激。

Demo

2 个答案:

答案 0 :(得分:4)

official example上甚至没有出现使用InteractiveLegendPlugin显示的标签效果。

更改绘图的背景颜色时可能会更好地观察到原因:图例标签被图形边缘截断。

enter image description here

因此,解决方案是在图的右侧使用较大的边距,使得标签位于图边缘内。这可以是例如通过

完成
fig.subplots_adjust(right=0.7)

enter image description here

答案 1 :(得分:2)

最后,我最终使用了这个代码,在底部创建了一个带有标签的框,使其看起来非常有条理:

plt.legend(loc='upper center', bbox_to_anchor=(0.5, -0.05), fancybox=True, shadow=True, ncol=5)

Labels in a box