更改Matplotlib散点图的默认边缘颜色

时间:2019-04-22 21:29:56

标签: python matplotlib

我正在寻找一种更改matplotlib散点图的 default 边缘颜色的方法。通常,类似的事情将通过rcParams进行设置,而我的理解是我应该设置patch.edgecolor。但是,这似乎不起作用。这是一个示例:

import numpy as np
from matplotlib import pyplot as plt

x = np.random.randn(50)
y = np.random.randn(50)

with plt.rc_context({'patch.edgecolor': 'white'}):
    plt.subplot(121)
    plt.scatter(x, y)

plt.subplot(122)
plt.scatter(x, y, edgecolors='white')

结果,我希望两个子图看起来都一样,但是它们看起来像这样: What I want to see 请注意,我不想更改with语句中的代码,而是配置matplotlib,以便在我不指定其他任何内容的情况下使用白色边作为后备。令人困惑的是,documentation在函数签名中使用默认参数edgecolors=None,但指出edgecolors的默认值为'face'。我该如何改变这种行为?

1 个答案:

答案 0 :(得分:1)

您要查找的rc参数称为

'scatter.edgecolors'

例如plt.rcParams['scatter.edgecolors'] = "white"
with plt.rc_context({'scatter.edgecolors': 'white'}):

这是#12992中引入的一项新功能,可从 matplotlib 3.1 开始使用,并将很快发布。从今天开始,您可以通过pip install --pre --upgrade matplotlib安装候选版本以获得此功能。