Hướng dẫn python plot pdf from data - pdf âm mưu trăn từ dữ liệu

Nếu bạn muốn vẽ sơ đồ phân phối và bạn biết nó, hãy xác định nó là một hàm và vẽ nó như vậy:

import numpy as np
from matplotlib import pyplot as plt

def my_dist(x):
    return np.exp(-x ** 2)

x = np.arange(-100, 100)
p = my_dist(x)
plt.plot(x, p)
plt.show()

Nếu bạn không có phân phối chính xác như một hàm phân tích, có lẽ bạn có thể tạo một mẫu lớn, lấy biểu đồ và bằng cách nào đó làm mịn dữ liệu:

import numpy as np
from scipy.interpolate import UnivariateSpline
from matplotlib import pyplot as plt

N = 1000
n = N//10
s = np.random.normal(size=N)   # generate your data sample with N elements
p, x = np.histogram(s, bins=n) # bin it into n = N//10 bins
x = x[:-1] + (x[1] - x[0])/2   # convert bin edges to centers
f = UnivariateSpline(x, p, s=n)
plt.plot(x, f(x))
plt.show()

Bạn có thể tăng hoặc giảm s (hệ số làm mịn) trong cuộc gọi chức năng UnivariateSpline để tăng hoặc giảm làm mịn. Ví dụ: sử dụng hai bạn nhận được:

Hướng dẫn python plot pdf from data - pdf âm mưu trăn từ dữ liệu

Hướng dẫn python plot pdf from data - pdf âm mưu trăn từ dữ liệu

Trong bài viết này, chúng tôi chỉ ra cách tạo hàm mật độ xác suất (PDF) trong Python. Để làm điều này, chúng tôi sử dụng các mô -đun Numpy, Scipy và Matplotlib.

Vì vậy, trước tiên chúng ta hãy nói về hàm mật độ xác suất.

Hàm mật độ xác suất (PDF) là một hàm có thể dự đoán hoặc hiển thị xác suất toán học của một giá trị xảy ra giữa một khoảng thời gian nhất định trong hàm.

Nó thực sự là một vấn đề tính toán.

Vì vậy, chúng tôi có một hàm mật độ xác suất nhất định. Tổng diện tích bên dưới đường cong bằng 1 (hoặc 100%). Khu vực bên dưới đường cong ở một khoảng cụ thể biểu thị xác suất của một số khoảng xảy ra trong hàm mật độ xác suất. Đây phải là một số từ 0 đến 1.

Trong tính toán, tích hợp xác định giải quyết xác suất của một khoảng thời gian xảy ra trong hàm mật độ xác suất trong một khoảng thời gian nhất định.

Ví dụ, giả sử rằng chúng ta có một biểu đồ nhiệt độ trong tháng 8. Giả sử rằng nhiệt độ trung bình là 80 ° F. Và trục X nằm trong nhiệt độ từ 65 ° F ở đầu dưới đến 95 ° F ở đầu trên. Hãy nói rằng chúng tôi muốn tìm xác suất của nhiệt độ từ 65 ° F đến 80 ° F. Chúng tôi sẽ thiết lập một tích phân xác định để phạm vi đi từ 65 đến 80. Bạn thực hiện tích hợp thay thế các giá trị này và sau đó bạn đã tính xác suất cho nhiệt độ xảy ra từ 65 ° F đến 80 ° F cho hàm mật độ xác suất cụ thể .

Vì vậy, hàm mật độ xác suất đại diện cho một hàm bao gồm các giá trị dữ liệu ngẫu nhiên liên tục có thể dự đoán với sự tích hợp trong tính toán, xác suất xảy ra một khoảng thời gian nhất định trong hàm, được biểu thị bằng khu vực bên dưới đường cong.

Dưới đây chúng tôi tạo mã tạo ra hàm mật độ xác suất bằng cách sử dụng Numpy, SCIPY và Matplotlib.

Vì vậy, hãy chia nhỏ mã này.

Trước tiên chúng tôi nhập định mức từ scipy.stats. Điều này cho phép chúng tôi tạo ra một hàm mật độ xác suất chuẩn hóa.

Sau đó chúng tôi nhập mô -đun Numpy dưới dạng NP. Điều này có nghĩa là chúng tôi tham chiếu mô -đun Numpy với từ khóa, NP.

Sau đó, chúng tôi nhập chức năng vẽ mô -đun matplotlib vì chúng tôi sẽ vẽ đồ thị dữ liệu.

Vì vậy, chúng tôi sử dụng mô-đun Numpy để tạo trục X, chúng tôi sử dụng SICPY để tạo hàm mật độ xác suất bình thường và sau đó chúng tôi sử dụng mô-đun matplotlib để vẽ dữ liệu.

Chúng tôi tạo một biến, x và gán nó cho, np.arange (-4,4,0.001)

Những gì dòng này làm là nó tạo ra một trục x của các giá trị nằm trong khoảng từ -4 đến 4 với số phụ kiện là 0,001.

Sau đó, chúng tôi vẽ một hàm mật độ xác suất được chuẩn hóa với dòng, plt.plot (x, norm.pdf (x))

Sau đó chúng tôi hiển thị biểu đồ đồ thị này với dòng, plt.show ()

Sau khi chạy mã này, chúng tôi nhận được đầu ra sau đây được hiển thị bên dưới.

Hướng dẫn python plot pdf from data - pdf âm mưu trăn từ dữ liệu

Và đây là cách tạo ra một biểu đồ hàm mật độ xác suất trong Python với các mô -đun numpy, scipy và matplotlib.

Tài nguyên liên quan

Trọng tâm chính: Hiển thị với các ví dụ: Hãy ước tính và vẽ hàm mật độ xác suất của một biến ngẫu nhiên bằng cách sử dụng hàm biểu đồ matplotlib Python. Shown with examples: let’s estimate and plot the probability density function of a random variable using Python’s Matplotlib histogram function.

Tạo các biến ngẫu nhiên với đặc tính phân phối xác suất cần thiết là điều tối quan trọng trong việc mô phỏng một hệ thống truyền thông. Hãy cùng xem cách chúng ta có thể tạo ra một biến ngẫu nhiên đơn giản, ước tính và vẽ đồ thị hàm mật độ xác suất (PDF) từ dữ liệu được tạo và sau đó khớp với PDF lý thuyết dự định. Biến ngẫu nhiên bình thường được xem xét ở đây để minh họa.probability density function (PDF) from the generated data and then match it with the intended theoretical PDF. Normal random variable is considered here for illustration.

Bước 1: Tạo các mẫu ngẫu nhiên

Một cuộc khảo sát về các phương pháp cơ bản thường được sử dụng để tạo ra một biến ngẫu nhiên nhất định được đưa ra trong [1]. Đối với trình diễn này, chúng tôi sẽ xem xét biến ngẫu nhiên thông thường với các tham số sau: μ - trung bình và độ lệch chuẩn. Đầu tiên tạo ra một vectơ có số ngẫu nhiên phân phối ngẫu nhiên có độ dài đủ (giả sử 100000) với một số giá trị hợp lệ cho μ và. Có nhiều hơn một cách để tạo ra điều này. Hai trong số chúng được đưa ra dưới đây.[1]. For this demonstration, we will consider the normal random variable with the following parameters : μ – mean and σ – standard deviation. First generate a vector of randomly distributed random numbers of sufficient length (say 100000) with some valid values for μ and σ. There are more than one way to generate this. Two of them are given below.

● Phương pháp 1: Sử dụng hàm Numpy.random.normal () được xây dựng (yêu cầu gói Numpy được cài đặt) Using the in-built numpy.random.normal() function (requires numpy package to be installed)

import numpy as np

mu=10;sigma=2.5 #mean=10,deviation=2.5
L=100000 #length of the random vector

#Random samples generated using numpy.random.normal()
samples_normal = np.random.normal(loc=mu,scale=sigma,size=(L,1)) #generate normally distributted samples

● Phương pháp 2: Phương pháp biến đổi trung gian hộp [2] tạo ra một cặp số ngẫu nhiên được phân phối bình thường (Z1, Z2) bằng cách chuyển đổi một cặp mẫu ngẫu nhiên độc lập phân phối đồng đều (U1, U2). Thuật toán chuyển đổi được đưa ra bởi Box-Muller transformation [2] method produces a pair of normally distributed random numbers (Z1, Z2) by transforming a pair of uniformly distributed independent random samples (U1,U2). The algorithm for transformation is given by

Hướng dẫn python plot pdf from data - pdf âm mưu trăn từ dữ liệu

#Samples generated using Box-Muller transformation

U1 = np.random.uniform(low=0,high=1,size=(L,1)) #uniformly distributed random numbers U(0,1)
U2 = np.random.uniform(low=0,high=1,size=(L,1)) #uniformly distributed random numbers U(0,1)

a = np.sqrt(-2*np.log(U1))
b = 2*np.pi*U2

Z = a*np.cos(b) #Standard Normal distributed numbers
samples_box_muller= Z*sigma+mu #Normal distribution with mean and sigma

Bước 2: Vẽ biểu đồ ước tính

Thông thường, nếu chúng ta có một vectơ các số ngẫu nhiên được rút ra từ phân phối, chúng ta có thể ước tính PDF bằng công cụ biểu đồ. Chức năng lịch sử Matplotlib có thể được sử dụng để tính toán và biểu đồ biểu đồ. Nếu đối số mật độ được đặt thành ‘true, hàm hist tính toán biểu đồ được chuẩn hóa sao cho diện tích dưới biểu đồ sẽ tổng cộng 1. Ước tính và vẽ biểu đồ được chuẩn hóa bằng cách sử dụng hàm Hist. hist function can be used to compute and plot histograms. If the density argument is set to ‘True’, the hist function computes the normalized histogram such that the area under the histogram will sum to 1. Estimate and plot the normalized histogram using the hist function.

#For plotting
import matplotlib.pyplot as plt
%matplotlib inline
plt.style.use('ggplot')

fig, ax0 = plt.subplots(ncols=1, nrows=1) #creating plot axes
(values, bins, _) = ax0.hist(samples_normal,bins=100,density=True,label="Histogram of samples") #Compute and plot histogram, return the computed values and bins

Bước 3: PDF lý thuyết:

Và để xác minh, phủ PDF lý thuyết cho ý định & nbsp; phân phối. PDF lý thuyết của các mẫu ngẫu nhiên phân phối bình thường được đưa ra bởi

Hướng dẫn python plot pdf from data - pdf âm mưu trăn từ dữ liệu

PDF lý thuyết cho phân phối bình thường có thể thu được từ chức năng STATS.norm.pdf () trong gói SCIPY.stats.norm.pdf() function in the SciPy package.

from scipy import stats
bin_centers = 0.5*(bins[1:] + bins[:-1])
pdf = stats.norm.pdf(x = bin_centers, loc=mu, scale=sigma) #Compute probability density function
ax0.plot(bin_centers, pdf, label="PDF",color='black') #Plot PDF
ax0.legend()#Legend entries
ax0.set_title('PDF of samples from numpy.random.normal()');

Hướng dẫn python plot pdf from data - pdf âm mưu trăn từ dữ liệu
Hình 1: PDF ước tính (Biểu đồ) và PDF lý thuyết cho các mẫu được tạo bằng cách sử dụng hàm numpy.random.nmal ()

Biểu đồ và PDF lý thuyết của các mẫu ngẫu nhiên được tạo ra bằng cách sử dụng chuyển đổi miller hộp, có thể được vẽ theo cách tương tự.

#Samples generated using Box-Muller transformation
from numpy.random import uniform
U1 = uniform(low=0,high=1,size=(L,1)) #uniformly distributed random numbers U(0,1)
U2 = uniform(low=0,high=1,size=(L,1)) #uniformly distributed random numbers U(0,1)
a = np.sqrt(-2*np.log(U1))
b = 2*np.pi*U2
Z = a*np.cos(b) #Standard Normal distribution
samples_box_muller = Z*sigma+mu #Normal distribution with mean and sigma

#Plotting
fig, ax1 = plt.subplots(ncols=1, nrows=1) #creating plot axes
(values, bins, _) = ax1.hist(samples_box_muller,bins=100,density=True,label="Histogram of samples") #Plot histogram
bin_centers = 0.5*(bins[1:] + bins[:-1])
pdf = stats.norm.pdf(x = bin_centers, loc=mu, scale=sigma) #Compute probability density function
ax1.plot(bin_centers, pdf, label="PDF",color='black') #Plot PDF
ax1.legend()#Legend entries
ax1.set_title('Box-Muller transformation');

Hướng dẫn python plot pdf from data - pdf âm mưu trăn từ dữ liệu
Hình 2: PDF ước tính (biểu đồ) và PDF lý thuyết cho các mẫu được tạo ra bằng cách sử dụng chuyển đổi trung gian hộp để phân phối bình thường

References:

[1] John Mount, Sáu phương pháp cơ bản để tạo ra một biến ngẫu nhiên, ngày 20 tháng 1 năm 2012 [2] Thomas, D. B., Luk. W., Leong, P. H. W., và Villasenor, J. D. 2007. Máy tạo số ngẫu nhiên Gaussian. ACM tính toán. Surv. 39, 4, Điều 11 (tháng 10 năm 2007), 38 trang doi = 10.1145/1287620.1287622 http://doi.acm.org/10.1145/1287620.1287622
[2] Thomas, D. B., Luk. W., Leong, P. H. W., and Villasenor, J. D. 2007. Gaussian random number generators. ACM Comput. Surv. 39, 4, Article 11 (October 2007), 38 pages DOI = 10.1145/1287620.1287622 http://doi.acm.org/10.1145/1287620.1287622

Đánh giá bài đăng này: (1 phiếu, trung bình: 5,00 trên 5)

Hướng dẫn python plot pdf from data - pdf âm mưu trăn từ dữ liệu
Hướng dẫn python plot pdf from data - pdf âm mưu trăn từ dữ liệu
Hướng dẫn python plot pdf from data - pdf âm mưu trăn từ dữ liệu
Hướng dẫn python plot pdf from data - pdf âm mưu trăn từ dữ liệu
Hướng dẫn python plot pdf from data - pdf âm mưu trăn từ dữ liệu
(1 votes, average: 5.00 out of 5)

Sách của tác giả

Chủ đề tương tự

Các bài viết trong loạt bài này
[1] Sê -ri Fibonacci trong Python
[2] Định lý giới hạn trung tâm - một cuộc biểu tình
[3] Bộ lọc trung bình di chuyển trong Python và Matlab
[4] Cách vẽ FFT trong Python - FFT của các tín hiệu cơ bản: Sóng sin và cosin
[5] Cách vẽ các tệp âm thanh làm chuỗi thời gian bằng Scipy Python
[6] Cách thiết kế bộ lọc FIR đơn giản để từ chối tần số không mong muốn
[7] Tín hiệu phân tích, biến đổi Hilbert và FFT
[8] Phân phối Chi bình phương không trung tâm
[9] Mô phỏng các kỹ thuật điều chế M-PSK trong kênh AWGN (trong MATLAB và PYTHON)
[10] Điều chế và giải điều chế QPSK (với triển khai MATLAB và Python)

Làm thế nào để bạn vẽ một bản PDF trong Python?

San bằng với Python: Nhanh chóng tạo ra các tệp PDF với hình ảnh tuyệt đẹp..
Bước 1: Chọn đồ họa để hiển thị. ....
Bước 2: Chọn bố cục phụ. ....
Bước 3: Chọn Hình bổ sung. ....
Bước 4: Thêm biểu đồ dòng dưới dạng Subplot. ....
Bước 5: Thêm sơ đồ Venn dưới dạng Subplot. ....
Bước 6: Thêm bảng dưới dạng Subplot. ....
Bước 7: Kết thúc xuất khẩu dưới dạng PDF ..

KDE có giống như PDF không?

Ước tính mật độ hạt nhân hoặc KDE là một cách không tham số để ước tính hàm mật độ xác suất của một biến ngẫu nhiên.Nói cách khác, mục đích của KDE là tìm hàm mật độ xác suất (PDF) cho một bộ dữ liệu nhất định.Làm thế nào nó khác với phương pháp biểu đồ chuẩn hóa?Vâng, nó làm mịn các giá trị xung quanh của PDF.the aim of KDE is to find probability density function (PDF) for a given dataset. How it differs from normalized histogram approach? Well, it smooths the around values of PDF.

Làm thế nào để bạn vẽ PDF?

Vẽ các tờ..
Mở tài liệu PDF và chọn Tệp> In hoặc nhấp vào biểu tượng in ..
Nếu bạn đang vẽ nhiều tờ, hãy chú ý đến khu vực lựa chọn phạm vi in ..
Trong phần Xử lý trang Chọn: Tỷ lệ trang: Không có.Chuyển đổi trên: tự động xoay và trung tâm.....
Chọn OK để gửi cho máy vẽ ..

Làm thế nào để bạn vẽ một pdf và cdf trong python?

Matplotlib với python tính toán biểu đồ của một tập hợp dữ liệu với dữ liệu và thùng = 10.Tìm hàm phân phối xác suất (PDF).Sử dụng PDF (Bước 5), tính toán CDF.Biểu đồ CDF bằng phương thức Plot () với nhãn "CDF".Using pdf (Step 5), calculate cdf. Plot the cdf using plot() method with label "CDF".