Гауссовский Python подходит с тем же цветом, что и столбцы гистограммы

Я использую функции plot() а также hist() из pyplot (без определения цвета), чтобы сгенерировать следующую графику:

График из двух наборов данных, каждый из которых имеет собственную подгонку Гаусса

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

Я не мог найти ничего, связанного с этим.

2 ответа

Я нашел решение, используя

plt.gca().set_color_cycle(None)

Благодаря сбросу цветового цикла в Matplotlib

Следующий код должен работать из коробки, чтобы завершить мой вопрос о гауссовой подгонке того же цвета, что и столбцы гистограммы.

import matplotlib.pyplot as plt
import matplotlib.mlab as mlab
import numpy as np

list_of_lists = []

for i in range(2):
    list = np.random.normal(0, 1, 100)
    list = list.tolist()
    list_of_lists.append(list)

plt.figure()
plt.hist(list_of_lists, bins = 10, normed=True)

numb_lists = len(list_of_lists)

plt.gca().set_color_cycle(None)

for i in range(0, numb_lists):
    list = list_of_lists[i][:]
    mean = np.mean(list)
    variance = np.var(list)
    sigma = np.sqrt(variance)
    x = np.linspace(min(list), max(list), 100)
    plt.plot(x, mlab.normpdf(x, mean, sigma))

Чтобы убедиться, что график и гистограмма имеют один и тот же цвет, я предлагаю вам исправить цвет графика и линии наилучшего соответствия. Если вы посмотрите на пример здесь http://matplotlib.org/1.2.1/examples/pylab_examples/histogram_demo.html а затем на документацию по python для pyplot http://matplotlib.org/1.2.1/api/pyplot_api.html?highlight=hist

Метод matplotlib.pyplot.hist имеет цвет kwarg, который позволяет вам выбрать цвет, который вы хотите для гистограммы. В примере они устанавливают facecolor='green'

Затем для лучшей подгонки линии вы можете выбрать ее в том же цвете. Мне нужно увидеть код, чтобы дать более точные указания. Однако, если мы вернемся к примеру, здесь будут установлены свойства линии:

l = plt.plot(bins, y, 'r--', linewidth=1)

поэтому, если бы мы хотели, чтобы линия соответствия была зеленой, как остальная часть гистограммы, мы использовали бы:

l = plt.plot(bins, y, 'r--', linewidth=1, color = 'green')

Надеюсь, это поможет, не могу дать вам более конкретные советы, если вы не публикуете никаких строк кода.

Другие вопросы по тегам