在图例条目中叠加多个图层

3
我试图在具有背景补丁的图例中添加一个条目。期望的效果类似于这里所示,但我还想叠加一条线。基本上,我正在尝试获得类似于下面这张图片的东西:
https://istack.dev59.com/J7GYj.webp 但我不知道如何将蓝色虚线放在黄色补丁上。怎样才能将多个艺术家组合起来达到这个效果呢?我没有看到任何示例或明显的方法来实现它。

你能画一个小图吗?在MSPaint中涂鸦的东西就足够提供上下文了。 - Veedrac
1
@Veedrac 希望这能澄清一些事情 - Shep
1个回答

5
基本思路是使用plt.legend([(X,Y)])XY渲染在同一图例条目中。请注意多出的一对括号。
这是一个近似匹配您示例的演示:
import matplotlib.patches as mpatches
import matplotlib.lines as mlines
import matplotlib.pyplot as plt

yellow_patch = mpatches.Patch(color='yellow')
blue_dotted_line = mlines.Line2D([], [], linewidth=2, linestyle="--", dashes=(3.7, 2), color='blue')
brown_line = mlines.Line2D([], [], linewidth=2, color='brown')

plt.legend([(yellow_patch, blue_dotted_line), brown_line], ["Entry One", "Entry Two"])

plt.show()

与所需图像大致匹配的说明。

不过,你说得对,这并不明显。


哇,这真是太容易了。我承认,这个想法曾经在我脑海中闪过,但我认为“不可能会那么简单就能实现”…… - Shep
同样有趣的是它可以使用(red_patch, blue_dotted_line),但不能使用[red_patch, blue_dotted_line] - Shep

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接