Гауссовский 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')
Надеюсь, это поможет, не могу дать вам более конкретные советы, если вы не публикуете никаких строк кода.