Каков наилучший способ построения графиков с несколькими плотностями из цикла в Python 2.7?
Моя цель - визуализировать PDF для бета-распределения для 3 объектов (бандитов) с учетом размера выборки: N = 20,40, 60, 80, 100.
Я пытался использовать функцию pdf (), но, похоже, .pdf () не работает с пустым объектом и выдает ошибку:
AttributeErrorTraceback (most recent call last)
<ipython-input-306-6aa42d351ffc> in <module>()
26 for i, dist in enumerate(dist_list[::(n//20)], 1):
27 plt.subplot(20//4,4,i)
---> 28 plt.plot(x, dist.pdf(x))
29 plt.legend()
30 plt.yticks([])
AttributeError: 'numpy.ndarray' object has no attribute 'pdf'
основной код ниже.
Заранее спасибо.
import matplotlib.pyplot as plt
import numpy as np
import scipy.stats as stats
from scipy.stats import beta
bandits_prob = [0.2, 0.5, 0.7]
a=np.ones(3)
b=np.ones(3)
pulls=np.zeros(3)
success=np.zeros(3)
N=100
dist_list=[]
for i in xrange(N):
i = np.argmax(np.random.beta(a, b))
x = np.random.rand() < bandits_prob[i]
success[i] += x
pulls[i] +=1
beta_dist = np.random.beta(a + success, b + pulls - success)
dist_list.append(beta_dist)
plt.figure(figsize=(12, 9))
x = np.repeat(np.linspace(0, 1, 100), 3)
for i, dist in enumerate(dist_list[::(N//20)], 1):
plt.subplot(20//4,4,i)
plt.plot(x, dist.pdf(x))
plt.legend()
plt.yticks([])
plt.xticks([])
plt.tight_layout()