Matplotlib不显示图例中补丁的填充

时间:2016-05-18 09:44:06

标签: python matplotlib legend

我不确定这是一个错误还是我做错了什么。我的目标是在图例中显示一个舱口,但它不起作用。我用的代码是

import matplotlib.patches as mpatches
...
def plot_legend(ax):
    ep = mpatches.Patch(color=[1.0, 0.5, 1.0, 1], hatch='/',
        label=r'$\pi_e\ free$')
    cp = mpatches.Patch(color=[1.0, 1.0, 1.0, 1], label='$\pi_e = exp(-60)$')
    #ax.legend(handles=[ep, cp], bbox_to_anchor=(1.05, 1), 
    #    loc=2, borderaxespad=0.)

    pyl.legend(handles=[ep, cp],
         loc=1)

    return

结果如下:

The weird color in the legend is to show that is working.

我正在使用的matplotlib版本在mac计算机中是1.5.1。

1 个答案:

答案 0 :(得分:4)

据推测,color中的mpatches.Patch关键字适用于edgecolorfacecolor。您的舱口可能在那里,因为颜色相同而不可见。

明确指定facecolor应解决您的问题:

ep = mpatches.Patch(edgecolor=[1.0, 0.5, 1.0, 1], facecolor=[0.5, 1.0, 1.0, 1], hatch='/', label=r'$\pi_e\ free$')

这有帮助吗?