Диаграмма рассеяния Pyplot, мешающая линии - PullRequest
0 голосов
/ 11 декабря 2018

Итак, у меня есть список чисел, а также среднее значение и стандартное отклонение этого списка.Я пытаюсь построить числа как значения x, а затем отобразить стандартное распределение списков на том же графике, однако они, похоже, мешают друг другу.Индивидуально они работают нормально.

plt.scatter(class1, [0]*len(class1), marker="x", label="C1", c="black")
plt.xlabel('X')
plt.ylabel('P(X|C)')
plt.title('X vs P(X|C)')
plt.legend()
x = np.linspace(mean1 - 3*std1, mean1 + 3*std1, 100)
plt.plot(x, scipy.stats.norm.pdf(x, mean1, std1))
plt.show()

На том же графике: Same Graph

Индивидуально: Distribution

enter image description here

В идеале, поскольку они охватывают одни и те же значения x, два графика будут просто перекрываться, однако, похоже, они сдвигаются в сторону.

1 Ответ

0 голосов
/ 11 декабря 2018

Ваш код работает:

import matplotlib.pyplot as plt
import scipy.stats

class1 = np.random.uniform(-2.4, -1, 100)
mean1 = class1.mean()
std1 = class1.std()

plt.scatter(class1, [0]*len(class1), marker="x", label="C1", c="black")
plt.xlabel('X')
plt.ylabel('P(X|C)')
plt.title('X vs P(X|C)')
plt.legend()
x = np.linspace(mean1 - 3*std1, mean1 + 3*std1, 100)
plt.plot(x, scipy.stats.norm.pdf(x, mean1, std1))
plt.show()

Вывод:

enter image description here

Вероятное объяснение вашей проблемы в том, что каким-то образомВаш код mean1 на самом деле не является средним значением списка значений x в class1.

...