【问题标题】:Changing default edge-color for matplotlib scatterplot更改 matplotlib 散点图的默认边缘颜色
【发布时间】:2019-04-23 06:38:30
【问题描述】:

我正在寻找一种方法来更改 matplotlib 散点图的 默认 边缘颜色。通常,这样的事情会通过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')

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

【问题讨论】:

  • 目前看来没有这种可能。阅读 this 上的 cmets。目前可以默认设置的标记属性有plt.rcParams["lines.markeredgewidth"] = 2plt.rcParams["lines.markersize"] = 10plt.rcParams["scatter.marker"] = 'o'

标签: python matplotlib


【解决方案1】:

你要找的rc参数叫做

'scatter.edgecolors'

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

这是#12992 中引入的新功能,可从 ma​​tplotlib 3.1 开始使用,该功能将很快发布。即日起,您可以通过pip install --pre --upgrade matplotlib 安装候选版本以获取此功能。

【讨论】:

  • 除了 PR 之外的任何地方都有记录吗?
  • 好吧,因为它还没有正式发布,它只在devdocs,它说关于边缘颜色默认为无,在这种情况下它采用rcParams["scatter.edgecolors"] = 'face'的值。
猜你喜欢
  • 2014-09-24
  • 1970-01-01
  • 1970-01-01
  • 2017-09-17
  • 1970-01-01
  • 2014-10-04
  • 2020-01-15
  • 1970-01-01
  • 2021-10-01
相关资源
最近更新 更多