matplotlib 如何更改图例的边色和面色

fjaof16o  于 2023-05-07  发布在  其他
关注(0)|答案(3)|浏览(193)

有没有一个简单的方法可以用给定的颜色填充图例区域的背景。更具体地说,我想网格不被视为对传说领域,因为它扰乱了文本阅读。
关键字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')

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

w6lpcovy

w6lpcovy1#

您可以分别设置边颜色和面颜色,如下所示:

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

FancyBboxPatch here下有更多信息。

jv4diomz

jv4diomz2#

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

iq3niunx

iq3niunx3#

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

frame.set_linewidth(0)

我在一个小的方便函数中使用了这个方法来隐藏图例框架,原因与您引用的相同。该函数在print_targeted_plots模块(可用from github)中称为adjust_legends

相关问题