Pyplot散点图干扰线
Pyplot scatterplot interfering with line
所以我有一个数字列表以及这个列表的均值和标准差。我试图将数字绘制为 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()
在同一张图上:
个人:
理想情况下,因为它们覆盖相同的 x 值,所以两个图会重叠,但它们似乎被推到了一边。
您的代码有效:
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()
输出:
那么对您的问题的可能解释是,在您的代码中 mean1
实际上并不是 class1
.
中 x 值列表的平均值
所以我有一个数字列表以及这个列表的均值和标准差。我试图将数字绘制为 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()
在同一张图上:
个人:
理想情况下,因为它们覆盖相同的 x 值,所以两个图会重叠,但它们似乎被推到了一边。
您的代码有效:
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()
输出:
那么对您的问题的可能解释是,在您的代码中 mean1
实际上并不是 class1
.