我试图用置信带绘制一些数据。我为每个数据流绘制了两个图:plot
和fill_between
。我希望图例看起来与图类似,其中每个条目都有一个框(置信区域的颜色),带有一条穿过中心的较暗实线。到目前为止,我已经能够使用面片创建矩形图例键,但我不知道如何实现中心线。我尝试使用影线,但无法控制位置。厚度或颜色。
我最初的想法是尝试并合并两个补丁(补丁和二维线);然而,它还没有奏效。有更好的方法吗?我的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,1,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',))
4条答案
按热度按时间7rfyedvj1#
该解决方案是从CrazyArm的评论中借用的,可以在这里找到:显然,你可以列出一个句柄列表,只分配一个标签,它神奇地将两个句柄/艺术家结合在一起。
mrzz3bfm2#
从代码开始
这是最接近我可以得到你。可能有一种方法来创建补丁的方式,你想要的,但我是一个有点新的,以及所有我能做的是建立适当的图例:
从我可以告诉你将不得不创建一个“艺术家”的对象,适合你正在寻找的设计,我找不到这样做的方法。一些类似的例子可以在这个线程中找到:Custom Legend Thread
希望这有助于好运,我有兴趣,如果有更深入的方式以及。
sgtfey8w3#
我也有“类似”的问题。多亏了这个问题,我才能做到以下几点。
然而,我的两个标记(金星和火星)在图例中重叠。我试着玩手柄长度,但似乎没有帮助。任何建议或意见将是有益的。
3hvapo4f4#
对于那些想进一步推动这个主题的人
我遇到过一个非常相似的问题,不同之处在于我希望图例用虚线和填充的矩形表示自定义形状(也是用
plot
和fill_between
创建的)(因为该形状具有此模式)。我找到的解决方案是按照Matplotlib Legend指南实现一个自定义图例处理程序。
特别是,我实现了一个定义
legend_artist
方法的类,该方法允许您通过向handlebox
添加补丁来尽可能多地定制处理程序(或者这是我的理解)。我用矩形而不是斑点形状发布了一个MWE(这需要很大的空间,而且会模糊信息)。