Точки графика Python на основе нормального распределения

Я хочу проверить, находится ли случайная точка внутри нормального распределения или нет. Как видно из моего кода, я разделяю их разными цветами; однако результат неверен - критерием является то, что точка находится внутри или вне распределения, а затем раскрашивает ее соответствующим образом.

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

mu = 175
sigma = 10
xnormal = np.linspace(-3 * sigma + mu, 3 * sigma + mu, 1000)
xnormal = [int(x) for x in xnormal]

plt.plot(xnormal, stats.norm.pdf(xnormal, mu, sigma))
plt.axhline(y=0.04, color='r', linestyle='-')

N = 100

for i in range(N):
    x = np.random.randint(145, 205)
    y = np.random.uniform(0.0, 0.04)
    if (y <= (xnormal.count(x)/1000)):
        plt.scatter(x,y,None,'orange')
    else:
        plt.scatter(x,y,None,'b')
plt.show()

Что выводит программа:

Какой должен быть результат:

Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
0
0
686
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Небольшая проблема с индексацией:

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

#just inserted for reproducibility
np.random.seed(123)

mu = 175
sigma = 10
xnormal = np.linspace(-3 * sigma + mu, 3 * sigma + mu, 1000)
xnormal = [int(x) for x in xnormal]
ynormal = stats.norm.pdf(xnormal, mu, sigma)

plt.plot(xnormal, ynormal)
plt.axhline(y=0.04, color='r', linestyle='-')

N = 100

for i in range(N):
    x = np.random.randint(145, 205)
    y = np.random.uniform(0.0, 0.04)
    if (y <= ynormal[xnormal.index(x)]):
        plt.scatter(x,y,None,'orange')
    else:
        plt.scatter(x,y,None,'b')
plt.show()

Пример вывода:

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