2015-07-04 2 views
0

Я хочу рисовать распределения, как показано на рисунке ниже - хвост дистрибутивов. Я пробовал следующее, но не совсем туда:Воспроизводите два дистрибутива, как показано на одном графике, используя Python

import matplotlib.pyplot as plt 
import numpy as np 
import matplotlib.mlab as mlab 
import math 

mean1 = 0 
variance1 = 1 
sigma1 = math.sqrt(variance1) 
x = np.linspace(-3,3.5,100, endpoint=True) 
plt.plot(x,mlab.normpdf(x,mean1,sigma1)) 

mean2 = 0.4 
variance2 = 2 
sigma2 = math.sqrt(variance2) 
y = np.linspace(-4,3.5,100, endpoint=False) 
plt.plot(x,mlab.normpdf(y,mean2,sigma2)) 
##plt.axis('off') 
plt.yticks([]) 
plt.xticks([]) 
plt.show() 

Любые предложения были бы признательны?

enter image description here

ответ

3

Вы хотите fill_between:

import matplotlib.pyplot as plt 
import numpy as np 
import matplotlib.mlab as mlab 
import math 

mean1 = 0 
variance1 = 1 
sigma1 = math.sqrt(variance1) 
x = np.linspace(-3,3.5,100, endpoint=True) 
y1 = mlab.normpdf(x,mean1,sigma1) 
fig, ax = plt.subplots() 
ax.plot(x,y1) 

mean2 = 0.4 
variance2 = 2 
sigma2 = math.sqrt(variance2) 
y = np.linspace(-4,3.5,100, endpoint=False) 
y2 = mlab.normpdf(y,mean2,sigma2) 
ax.plot(x,y2) 


ax.fill_between(x[:30], y1[:30], color='blue') 
ax.fill_between(x[:30], y2[:30], color='green') 
ax.fill_between(x[-30:], y1[-30:], y2[-30:], color='red', alpha=0.5) 
ax.set_yticks([]) 
ax.set_xticks([]) 
plt.savefig('fill_norms.png') 
plt.show() 

enter image description here

Это сумасшедший простой пример - см cookbook examples и посмотреть на пункте where; ваши заливки между бликами могут адаптироваться к изменениям линий, которые вы рисуете (например, автоматический красный fill_between везде BADTHING превосходит GOODTHING, без необходимости вычислять индекс (30 или -30 в этом примере)).

+0

Мой ОП был недостаточно ясен. Я в основном хочу получить распределение хвостов как для правой, так и для правой стороны. – Ibe

+2

Вы имеете в виду ваши y-значения? Это проблема статистики, а не проблема программирования. – cphlewis

+0

Проблема была как в статистике, так и в цветовых хвостах. Исправлено все, но только оставшаяся вещь заключается в том, как окрасить правый хвост y1 и y2 точно так же, как образец образца? – Ibe

Смежные вопросы