【问题标题】:How to change the legend edgecolor and facecolor in matplotlib如何在 matplotlib 中更改图例 edgecolor 和 facecolor
【发布时间】:2013-11-08 16:00:32
【问题描述】:

rcParams['legend.frameon'] = 'False' 是否有一种用给定颜色填充图例区域背景的简单方法。更具体地说,我不希望在图例区域看到网格,因为它会干扰文本阅读。

关键字framealpha 听起来像是我需要的,但它并没有改变任何东西。

import matplotlib as mpl
import matplotlib.pyplot as plt
mpl.rcParams['legend.frameon'] = 'False'
plt.plot(range(5), label = u"line")
plt.grid(True)
plt.legend(loc = best)
plt.show()

我也试过了:

legend = plt.legend(frameon = 1)
frame = legend.get_frame()
frame.set_color('white')

但是我需要问如何在保持框架打开的同时更改背景颜色?有时我希望它使用白色以外的背景颜色。还有,有没有办法改变框架的颜色?使用上面的代码,我希望只更改框架的颜色,而不是背景。

【问题讨论】:

    标签: python matplotlib


    【解决方案1】:

    你可以像这样分别设置边缘颜色和面颜色:

    frame.set_facecolor('green')
    frame.set_edgecolor('red')
    

    在 FancyBboxPatch here 下有更多信息。

    【讨论】:

      【解决方案2】:

      使用 matplotlib.pyplot,plt.legend(facecolor='white', framealpha=1) 将为您的图例提供不透明的白色背景。

      【讨论】:

        【解决方案3】:

        除了 Molly 的方法之外,您还可以使用线宽关闭框架:

        frame.set_linewidth(0)
        

        出于与您引用的相同原因,我在编写的一个小型便捷函数中使用了该方法来隐藏图例框架。该函数在print_targeted_plots 可用的from github 模块中调用adjust_legends

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2020-09-30
          • 2015-05-20
          • 2011-06-15
          • 2011-07-14
          相关资源
          最近更新 更多