Изменение цвета края по умолчанию для диаграммы рассеяния matplotlib - PullRequest
0 голосов
/ 23 апреля 2019

Я ищу способ изменить цвет ребра по умолчанию для диаграмм рассеяния 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')

В результате я хотел бы, чтобы оба участка выглядели одинаково, но вместо этого они выглядят так: What I want to see Обратите внимание, что я не хочу изменять код в операторе with, но вместо этого настраиваю matplotlib так, чтобы он использовал белые края в качестве запасного варианта, если я не укажу ничего другого. Смущает, что документация использует аргумент по умолчанию edgecolors=None в сигнатуре функции, но утверждает, что значением по умолчанию для edgecolors является 'face'. Как я могу изменить это поведение?

1 Ответ

1 голос
/ 23 апреля 2019

Параметр rc, который вы ищете, называется

'scatter.edgecolors'

например. plt.rcParams['scatter.edgecolors'] = "white" или
with plt.rc_context({'scatter.edgecolors': 'white'}):.

Это новая функция, представленная в # 12992 и доступная с matplotlib 3.1 и далее, которая будет выпущена очень скоро. На сегодняшний день вы можете установить кандидата на выпуск через pip install --pre --upgrade matplotlib, чтобы получить эту функцию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...