Matplotlib притупляет красный цвет в сюжете - PullRequest
0 голосов
/ 09 июля 2019

Когда я строю график в Spyder с помощью Matplotlib, красный цвет иногда будет тусклым. Например,

import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(0,10,100)
y = 2*x

plt.plot(x,y, color = 'r', linewidth = 10)
plt.show()

создаст изображение

enter image description here

вместо

enter image description here

Если я перезапущу Spyder после того, как увижу блеклый красный цвет, то получится хороший график с нормальным красным цветом. Я заметил это только при построении с красным цветом. Я использую версии Python 3.7.0, Spyder 3.3.4, IPython 7.2.0 и Matplotlib 3.0.2. Я также использую Mac Mojave, если это актуально.

Ответы [ 2 ]

2 голосов
/ 10 июля 2019

Где-то перед выполнением вашего кода у вас будет строка, в которой будет что-то вроде

import seaborn as sns
sns.set(style="white")

или подобное.

Полный код:

import seaborn as sns
sns.set(style="white")

import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(0,10,100)
y = 2*x

plt.plot(x,y, color = 'r', linewidth = 10)
plt.show()

enter image description here

Объяснение состоит в том, что seaborn.set обновляет цвета, еслидля его аргумента color_codes установлено значение True (по умолчанию).

color_codes: bool Если True и palette - палитра морского происхождения, переназначить сокращенные цветовые коды (например,«b», «g», «r» и т. д.) к цветам из этой палитры.

В документации по морскому роду также есть пример .

Таким образом, вы можете использовать

import seaborn as sns
sns.set(style="white", color_codes=False)

, чтобы получить

enter image description here

или просто не использовать .set вообще.

1 голос
/ 10 июля 2019

Когда я запускаю ваш код, я получаю второй график с нормальным красным цветом.Я использую версию Matplotlib 3.0.3.Кстати, вы всегда можете поиграть с цветом, указав в коде rgb (rgb должен быть в диапазоне от 0.0 до 1.0), чтобы получить нужный вам цвет:

plt.plot(x,y, color = (0.95, 0, 0), linewidth = 10)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...