Как показать значения частоты по оси Y? - PullRequest
1 голос
/ 02 апреля 2019

хочу показать гистограмму распределения частот

import numpy as np
from scipy.stats import norm
import matplotlib.pyplot as plt

data = [10,20,20,30,30,30,40,40,50,50]

mu, std = norm.fit(data)

plt.hist(data, bins='auto', density=True, alpha=1, color='navy')
plt.grid()

xmin, xmax = plt.xlim()
x = np.linspace(xmin, xmax, 10)
p = norm.pdf(x, mu, std)
plt.plot(x, p, 'k', linewidth=2)

plt.show()

Я получаю неизвестные числа по оси Y.

Я хочу получить частоту значений. Например: частота 10 равна 1, частота 20 равна 2. экран печати

Ответы [ 2 ]

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

Вы строите PDF-файл, следовательно, частота не отображается, а вероятность для каждого значения данных.

Я думаю, вы можете искать что-то подобное!

import numpy as np
import matplotlib.pyplot as plt

data = [10,20,20,30,30,30,40,40,50,50]
plt.hist(data, bins='auto', alpha=1)
plt.grid()
plt.plot(np.unique(data, return_counts=True)[0],np.unique(data, return_counts=True)[1])

enter image description here

0 голосов
/ 02 апреля 2019

Если вы хотите только частоту:

np.unique(data, return_counts=True)

если вы хотите создать гистограмму, с частотой оси Y просто используйте density=False (по умолчанию)

Но, вероятно, поскольку вы хотите сравнить с гауссовым распределением, вы хотите использовать density=True.

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