Pyplot散点图干扰线

时间:2018-12-11 06:03:19

标签: python matplotlib plot graphing

因此,我有一个数字列表以及该列表的均值和标准差。我试图将数字绘制为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 :(得分:2)

您的代码有效:

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中的某种方式实际上并不是class1中x值列表的平均值。