У меня есть список «имен» PD DF. Индивидуальные кандидаты в именах имеют размер 10000 X 10000 Dfs. таким образом, в именах есть 8 X (10k X 10k) данных. Теперь я хочу построить гистограмму для каждого из имен df в логарифмическом масштабе, а поверх него построить осевую линию от Area. Однако эти два НЕ появляются в одном кадре. В качестве проверки я построил осевую линию со средним значением имен, которая отображается поверх гистограммы (Второй график). Я не знаю, как представить здесь большие данные из имен df, чтобы можно было их воспроизвести, но я прилагаю свой код и цифры для показа.
Вот как они выглядяткогда строится осевая линия области Это то, как я хочу получить гистограмму вместе с осевой линией области
from sklearn import metrics
names = [a1,a2,a3,a4,a5,a6,a7,a8]
Area =[0.9998510812753971,
0.9998536575190805,
1.0002564290136022,
0.8801787882364508,
1.0014659776259986,
0.9986723705233791,
1.0016378266839825,
0.9958417296694885]
c = 1
for n in (names):
#print c
a=[]
plt.subplot(2,4,c)
for i in range(len(n)):
x = n.iloc[i][:np.shape(n)[1]/2]
y = n.iloc[i][np.shape(n)[1]/2:]
area = metrics.auc(x,y)
a.append(area)
plt.hist(a,bins=50,label='Mean = %.2f\nNumber = %s'%(np.mean(a),len(a)))
plt.axvline(Area[c-1],linestyle='--',c='r')
plt.axvline(np.mean(a), color='k', linestyle='dashed', linewidth=1)
plt.xscale('log')
aa=metrics.auc(c2['x0'],c2['y0'])
print 'The difference %s'%(aa-np.mean(a))
plt.legend()
plt.title('Bin = %s '%(z[c-1]))
plt.xlabel('AUC')
plt.tight_layout()
c+=1
#