将seaborn / matplotlib设置为始终使用edgecolor ='k'参数

时间:2019-01-20 12:57:08

标签: python matplotlib seaborn

例如,我正在构造很多条相同样式的条形图。

import seaborn as sns                                                       
import matplotlib.pyplot as plt                                             

sns.set_style('darkgrid')
# some more configuration options that work as expected here
sns.barplot([1, 2, 3], [4, 5, 6], edgecolor='k')

给出

是否可以将绘图环境配置为始终使用edgecolor='k',这样我就不必每次都传递参数了?

我尝试过

sns.set_style(rc={'patch.force_edgecolor':True})

但是没有效果。如果我在绘制时未明确使用edgecolor='k',则条形图没有边。

我还注意到有

plt.rc('edgecolor', ???)

但是我无法弄清楚???要传递什么(它必须是关键字参数)。


编辑:

使用

sns.set_style(rc={'patch.force_edgecolor':True})

不起作用,但是使用

sns.set_style(rc={'patch.force_edgecolor':True,
                   'patch.edgecolor': 'black'})

按预期工作。我不明白为什么这里需要'patch.edgecolor': 'black',因为这似乎是默认设置。

2 个答案:

答案 0 :(得分:2)

使用patch,如下所示:

plt.rcParams['patch.edgecolor'] = 'black'

您也可以这样做:

plt.rc('patch', edgecolor='black')

答案 1 :(得分:0)

我现在可以解释sns.set_style出了什么问题。

sns.set_style('darkgrid')'patch.edgecolor'设置为'w',这就是为什么必须再次将其手动设置为'black'的原因。