Plotting PMF jupyter notebook : ValueError: shape mismatch: objects cannot be broadcast to a single shape
Plotting PMF jupyter notebook : ValueError: shape mismatch: objects cannot be broadcast to a single shape
目前正在执行一项任务,需要我将概率质量函数绘制成图表。我拥有的质量函数与被抛 3 次的有偏见的硬币有关:
P(H) = 0.75
P(T) = 0.25
X = 0,1,2,3
F(0) = P(X=0) = P(t,t,t) = 0.015625
F(1) = P(X=1) = P(h,t,t) + P(t,h,t) + P(t,t,h) = 0.140625
F(2) = P(X=2) = P(h,h,t) + P(h,t,h) + P(t,h,h) = 0.421875
F(3) = P(X=3) = P(h,h,h) = 0.421875
当我使用以下代码绘制这些点时
import matplotlib.pyplot as plt
prob = np.array([0,0.015625,0.140625,0.421875,0.421875])
x = np.arange(0,3)
plt.bar(x,prob, width = 0.5)
plt.xlim(0.5,3.5)
plt.show()
我遇到了这个错误:
ValueError: shape mismatch: objects cannot be broadcast to a single shape
x
数组的形状必须与 prob
数组的形状匹配。我可以提出以下建议:
import matplotlib.pyplot as plt
prob = np.array([0.015625,0.140625,0.421875,0.421875])
x = np.arange(4)
plt.bar(x, prob, width = 0.5)
plt.xticks(x)
plt.xlim(-0.5,3.5)
plt.show()
您在 prob
中有 5 个元素,在 x
中有 3 个元素。 Python 如果两个数组中的元素数量不同,则无法绘制图表。由于 prob 中有 5 个元素,因此您需要在 x 轴上有 5 个刻度才能绘制条形图。
将 x = np.arange(0, 3)
更改为 x = np.arange(0, 5)
并将 plt.xlim(0.5,3.5)
更改为 plt.xlim(0.5,4.5)
并且您应该得到情节。
目前正在执行一项任务,需要我将概率质量函数绘制成图表。我拥有的质量函数与被抛 3 次的有偏见的硬币有关:
P(H) = 0.75
P(T) = 0.25
X = 0,1,2,3
F(0) = P(X=0) = P(t,t,t) = 0.015625
F(1) = P(X=1) = P(h,t,t) + P(t,h,t) + P(t,t,h) = 0.140625
F(2) = P(X=2) = P(h,h,t) + P(h,t,h) + P(t,h,h) = 0.421875
F(3) = P(X=3) = P(h,h,h) = 0.421875
当我使用以下代码绘制这些点时
import matplotlib.pyplot as plt
prob = np.array([0,0.015625,0.140625,0.421875,0.421875])
x = np.arange(0,3)
plt.bar(x,prob, width = 0.5)
plt.xlim(0.5,3.5)
plt.show()
我遇到了这个错误:
ValueError: shape mismatch: objects cannot be broadcast to a single shape
x
数组的形状必须与 prob
数组的形状匹配。我可以提出以下建议:
import matplotlib.pyplot as plt
prob = np.array([0.015625,0.140625,0.421875,0.421875])
x = np.arange(4)
plt.bar(x, prob, width = 0.5)
plt.xticks(x)
plt.xlim(-0.5,3.5)
plt.show()
您在 prob
中有 5 个元素,在 x
中有 3 个元素。 Python 如果两个数组中的元素数量不同,则无法绘制图表。由于 prob 中有 5 个元素,因此您需要在 x 轴上有 5 个刻度才能绘制条形图。
将 x = np.arange(0, 3)
更改为 x = np.arange(0, 5)
并将 plt.xlim(0.5,3.5)
更改为 plt.xlim(0.5,4.5)
并且您应该得到情节。