Гистограмма в логарифмическом масштабе и axvline вместе, не работает в matplotlib - PullRequest
0 голосов
/ 03 октября 2019

У меня есть список «имен» PD DF. Индивидуальные кандидаты в именах имеют размер 10000 X 10000 Dfs. таким образом, в именах есть 8 X (10k X 10k) данных. Теперь я хочу построить гистограмму для каждого из имен df в логарифмическом масштабе, а поверх него построить осевую линию от Area. Однако эти два НЕ появляются в одном кадре. В качестве проверки я построил осевую линию со средним значением имен, которая отображается поверх гистограммы (Второй график). Я не знаю, как представить здесь большие данные из имен df, чтобы можно было их воспроизвести, но я прилагаю свой код и цифры для показа.

This is how they appear when axvline od area are plotted Вот как они выглядяткогда строится осевая линия области This is how I want the histogram  along with the Area axvlines Это то, как я хочу получить гистограмму вместе с осевой линией области

 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
    #     
...