Hist и Axvline не следуют стилю цветового цикла / matplotlib - PullRequest
0 голосов
/ 06 июля 2018

Я пытаюсь построить распределение, и это значит:

import matplotlib.pyplot as plt
import numpy as np
plt.style.use('ggplot')

numbers = np.random.rand(100)
fig, ax = plt.subplots()
ax.hist(numbers)
ax.axvline(numbers.mean())

, которая нарисует красную линию поверх красного распределения. Важно отметить, что я хочу использовать цвета из моей цветовой схемы (gglot), и, следовательно, я не хочу вручную выбирать цвета или даже цветовой цикл.

Недавно я узнал, что если я хочу "заставить" цветовую циклическую систему использовать следующий цвет, я могу сделать

next(ax._get_lines.prop_cycler)

Однако, добавление этой строки между hist и axvline здесь не поможет. Как я мог "заставить" hist и axvline следовать цветам из моего стиля?

1 Ответ

0 голосов
/ 06 июля 2018

Вам нужно получить следующий цвет в цикле, используя

next(ax._get_lines.prop_cycler)['color']

Затем вам нужно явно использовать это в аргументе color= axvline:

plt.style.use('ggplot')

numbers = np.random.rand(100)
fig, ax = plt.subplots()
ax.hist(numbers)

ax.axvline(numbers.mean(), color = next(ax._get_lines.prop_cycler)['color'])

plt.show()

Что дает:

enter image description here

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