2015-02-12 20 views
5

C'è una biblioteca che mi avrebbe aiutato a tracciare ordinatamente una funzione massa di probabilità di un campione in pitone, in questo modo:Plotting PMF ordinatamente in pitone

enter image description here

enter image description here

+0

Date un'occhiata a qui: http://stackoverflow.com/questions/15415455/plotting-probability-density-function-by -sample-with-matplotlib – CentAu

+0

Anche io lo sto cercando. – Belter

risposta

5

Via matplotlib. modulo di stelo pyplot

matplotlib.pyplot.stem (* args, ** kwargs)

from matplotlib.pyplot import stem 

stem(y, linefmt='b-', markerfmt='bo', basefmt='r-') 
stem(x, y, linefmt='b-', markerfmt='bo', basefmt='r-') 

o più vicino al metallo

#!/usr/bin/env python 
from pylab import * 

x = linspace(0.1, 2*pi, 10) 
markerline, stemlines, baseline = stem(x, cos(x), '-.') 
setp(markerline, 'markerfacecolor', 'b') 
setp(baseline, 'color','r', 'linewidth', 2) 

show() 

enter image description here

Here

1

Penso che questo è abbastanza pulito,

enter image description here

Questo è il codice:

from scipy import stats 
import matplotlib.pyplot as plt 
import numpy as np 


xk = np.arange(7) 
pk = (0.1, 0.2, 0.3, 0.1, 0.1, 0.0, 0.2) 
custm = stats.rv_discrete(name='custm', values=(xk, pk)) 

fig, ax = plt.subplots(1, 1) 
ax.plot(xk, custm.pmf(xk), 'ro', ms=8, mec='r') 
ax.vlines(xk, 0, custm.pmf(xk), colors='r', linestyles='-', lw=2) 
plt.title('Custom made discrete distribution(PMF)') 
plt.ylabel('Probability') 
plt.show() 

Ref, https://docs.scipy.org/doc/scipy/reference/generated/scipy.stats.rv_discrete.html