Я работаю над проектом по электротехнике, который требует построения графика нормального распределения списка данных.
Мы случайным образом измерили сопротивление 30 резисторов и записали их.
X = [14,95, 14,94, 14,92, 14,98, 16,53, 14,96, 16,20, 14,32, 15,32, 14,25, 15,36, 14,95, 15,13, 14,26, 14,94, 15,6, 15,20, 14,94, 15,02, 15, 14,62, 14,94, 14,94, 14,98, 15,12, 15,06, 14,95, 14,96, 15,13, 15,20]
Я хочу получить такой график:
Но я получаю график, подобный этому:
Мне нужно получить больше значений на графике, где данные близки к среднему значению.
Это код, который я сейчас использую:
import numpy as np
from matplotlib import pyplot as plt
import math
X = [14.95, 14.94, 14.92, 14.98, 16.53, 14.96, 16.20, 14.32, 15.32, 14.25, 15.36, 14.95, 15.13, 14.26, 14.94, 15.6,
15.20, 14.94, 15.02, 15, 14.62, 14.94, 14.94, 14.98, 15.12, 15.06, 14.95, 14.96, 15.13, 15.20]
X = np.sort(X)
mean = np.mean(X)
sigma = 0
for i in X:
sigma += np.square(mean - i)
sigma = np.sqrt(sigma / (len(X) - 1))
def func(x):
return np.exp(np.square(x - mean) / (2 * np.square(sigma))) / np.sqrt(2 * math.pi * sigma)
Y = []
for i in X:
Y.append(func(i))
plt.plot(X, Y, marker='o', color='b')
plt.show()