是否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')
但是我需要问一下如何在保持框架的同时改变背景颜色?有时我想用白色以外的背景颜色打开它。还有,有没有办法改变框架的颜色?使用上面的代码我只期望改变帧的颜色,而不是背景。
答案 0 :(得分:27)
您可以分别设置边缘颜色和面部颜色:
frame.set_facecolor('green')
frame.set_edgecolor('red')
FancyBboxPatch here下有更多信息。
答案 1 :(得分:7)
除了 Molly 的方法,您还可以使用线宽关闭相框:
frame.set_linewidth(0)
我在一个小的便利函数中使用了这个方法,我写的是为了隐藏图例框架,原因与你引用的相同。该函数在adjust_legends
模块from github中称为print_targeted_plots
。
答案 2 :(得分:1)
使用matplotlib.pyplot,plt.legend(facecolor='white', framealpha=1)
将为您的图例提供白色背景且不透明。