2015-01-10 25 views
5

Tôi cần phải tạo một biểu đồ vẽ một đường thẳng chứ không phải biểu đồ bước hoặc thanh. Tôi đang sử dụng python 2.7 Hàm plt.hist bên dưới vẽ một đường thẳng và các thùng không xếp hàng trong hàm plt.plot.Có cách nào sạch để tạo biểu đồ biểu đồ đường trong Python không?

import matplotlib.pyplot as plt 
import numpy as np 
noise = np.random.normal(0,1,(1000,1)) 
(n,x,_) = plt.hist(noise, bins = np.linspace(-3,3,7), histtype=u'step') 
plt.plot(x[:-1],n) 

tôi cần dòng tương quan với số lượng mỗi thùng tại các trung tâm bin như thể có một histtype = u'line 'cờ để đi với align = u'mid' cờ

+0

Không giống như trang web diễn đàn, chúng tôi không sử dụng "Cảm ơn" hoặc "Bất kỳ trợ giúp được đánh giá cao" hoặc chữ ký nào trên [vậy]. Xem "[Nên 'Xin chào', 'cảm ơn', dòng giới thiệu và lời chào được xóa khỏi bài đăng không?] (Http://meta.stackexchange.com/questions/2950/should-hi-thanks-taglines-and-salutations-be -removed-from-posts). –

Trả lời

5

Sử dụng scipy , bạn có thể use stats.gaussian_kde-estimate the probability density function:

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

noise = np.random.normal(0, 1, (1000,)) 
density = stats.gaussian_kde(noise) 
n, x, _ = plt.hist(noise, bins=np.linspace(-3, 3, 50), 
        histtype=u'step', normed=True) 
plt.plot(x, density(x)) 
plt.show() 

enter image description here

2

Matplotlib's thumbnail gallery thường là khá hữu ích trong những tình huống như yo urs. Một sự kết hợp của thisthis one từ thư viện với một số tùy chỉnh có lẽ là rất gần với những gì bạn có trong tâm trí:

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

mu = 0 
sigma = 1 
noise = np.random.normal(mu, sigma, size=1000) 
num_bins = 7 
n, bins, _ = plt.hist(noise, num_bins, normed=1, histtype='step') 
y = mlab.normpdf(bins, mu, sigma) 
plt.plot(bins, y, 'r--') 
plt.show() 

enter image description here

Ngoài ra, tăng số lượng các thùng giúp ...

enter image description here

Các vấn đề liên quan