3
我正在嘗試創建具有給定自由度d1和d2的f分佈隨機數,並繪製兩個直方圖與f分佈的隨機數,並繪製理想化的f-分佈曲線,但是當我給df的小值時,直方圖不顯示。我是統計學和matplotlib的新手,我無法弄清楚如何處理這個問題。 這是我的代碼:直方圖不顯示在f分佈圖中
def distF(request, distribution_id):
dist = get_object_or_404(Distribution, pk=distribution_id)
dfd = dist.var4
dfn = dist.var2
x = np.random.f(dfn, dfd, size = dist.var3)
num_bins = 50
fig, ax = plt.subplots()
print(x)
# the histogram of the data
n, bins, patches = ax.hist(x, num_bins, normed=True)
y = np.linspace(0, 5, 1001)[1:]
dist = st.f(dfn, dfd, 0)
#y = np.linspace(st.f.ppf(0.01, dfn, dfd), st.f.ppf(0.99, dfn, dfd), 100)
ax.plot(y, dist.pdf(y), '--')
ax.set_xlabel('Smarts')
ax.set_ylabel('Probability density')
ax.set_xlim([0, 4])
ax.set_ylim([0, 3])
fig.tight_layout()
canvas = FigureCanvas(fig)
response = HttpResponse(content_type='image/png')
canvas.print_png(response)
plt.close(fig)
return response
這是圖什麼樣子:
F-分佈圖與小DF值
大的DF值
F-分佈圖