Hướng dẫn how do you display normal distribution in python? - làm thế nào để bạn hiển thị phân phối chuẩn trong python?

Bạn có thể nhận được CDF dễ dàng. Vì vậy, PDF thông qua CDF

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

    def setGridLine(ax):
        #http://jonathansoma.com/lede/data-studio/matplotlib/adding-grid-lines-to-a-matplotlib-chart/
        ax.set_axisbelow(True)
        ax.minorticks_on()
        ax.grid(which='major', linestyle='-', linewidth=0.5, color='grey')
        ax.grid(which='minor', linestyle=':', linewidth=0.5, color='#a6a6a6')
        ax.tick_params(which='both', # Options for both major and minor ticks
                        top=False, # turn off top ticks
                        left=False, # turn off left ticks
                        right=False,  # turn off right ticks
                        bottom=False) # turn off bottom ticks

    data1 = np.random.normal(0,1,1000000)
    x=np.sort(data1)
    y=np.arange(x.shape[0])/(x.shape[0]+1)

    f2 = scipy.interpolate.interp1d(x, y,kind='linear')
    x2 = np.linspace(x[0],x[-1],1001)
    y2 = f2(x2)

    y2b = np.diff(y2)/np.diff(x2)
    x2b=(x2[1:]+x2[:-1])/2.

    f3 = scipy.interpolate.interp1d(x, y,kind='cubic')
    x3 = np.linspace(x[0],x[-1],1001)
    y3 = f3(x3)

    y3b = np.diff(y3)/np.diff(x3)
    x3b=(x3[1:]+x3[:-1])/2.

    bins=np.arange(-4,4,0.1)
    bins_centers=0.5*(bins[1:]+bins[:-1])
    cdf = scipy.stats.norm.cdf(bins_centers)
    pdf = scipy.stats.norm.pdf(bins_centers)

    plt.rcParams["font.size"] = 18
    fig, ax = plt.subplots(3,1,figsize=(10,16))
    ax[0].set_title("cdf")
    ax[0].plot(x,y,label="data")
    ax[0].plot(x2,y2,label="linear")
    ax[0].plot(x3,y3,label="cubic")
    ax[0].plot(bins_centers,cdf,label="ans")

    ax[1].set_title("pdf:linear")
    ax[1].plot(x2b,y2b,label="linear")
    ax[1].plot(bins_centers,pdf,label="ans")

    ax[2].set_title("pdf:cubic")
    ax[2].plot(x3b,y3b,label="cubic")
    ax[2].plot(bins_centers,pdf,label="ans")

    for idx in range(3):
        ax[idx].legend()
        setGridLine(ax[idx])

    plt.show()
    plt.clf()
    plt.close()


Để vẽ một phân phối bình thường trong Python, bạn có thể sử dụng cú pháp sau:

#x-axis ranges from -3 and 3 with .001 steps
x = np.arange(-3, 3, 0.001)

#plot normal distribution with mean 0 and standard deviation 1
plt.plot(x, norm.pdf(x, 0, 1))

Mảng X xác định phạm vi cho trục x và plt.plot () tạo ra đường cong cho phân phối bình thường với giá trị trung bình và độ lệch chuẩn được chỉ định.x array defines the range for the x-axis and the plt.plot() produces the curve for the normal distribution with the specified mean and standard deviation.

Các ví dụ sau đây cho thấy cách sử dụng các chức năng này trong thực tế.

Ví dụ 1: Vẽ một bản phân phối bình thường duy nhất

Mã sau đây cho thấy cách vẽ một đường cong phân phối bình thường duy nhất với giá trị trung bình là 0 và độ lệch chuẩn là 1:

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

#x-axis ranges from -3 and 3 with .001 steps
x = np.arange(-3, 3, 0.001)

#plot normal distribution with mean 0 and standard deviation 1
plt.plot(x, norm.pdf(x, 0, 1))

Hướng dẫn how do you display normal distribution in python? - làm thế nào để bạn hiển thị phân phối chuẩn trong python?

Bạn cũng có thể sửa đổi màu sắc và chiều rộng của dòng trong biểu đồ:

plt.plot(x, norm.pdf(x, 0, 1), color='red', linewidth=3)

Hướng dẫn how do you display normal distribution in python? - làm thế nào để bạn hiển thị phân phối chuẩn trong python?

Ví dụ 2: Vẽ nhiều bản phân phối bình thường

Mã sau đây cho thấy cách vẽ nhiều đường cong phân phối bình thường với các phương tiện và độ lệch chuẩn khác nhau:

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

#x-axis ranges from -5 and 5 with .001 steps
x = np.arange(-5, 5, 0.001)

#define multiple normal distributions
plt.plot(x, norm.pdf(x, 0, 1), label='μ: 0, σ: 1')
plt.plot(x, norm.pdf(x, 0, 1.5), label='μ:0, σ: 1.5')
plt.plot(x, norm.pdf(x, 0, 2), label='μ:0, σ: 2')

#add legend to plot
plt.legend()

Hướng dẫn how do you display normal distribution in python? - làm thế nào để bạn hiển thị phân phối chuẩn trong python?

Hãy thoải mái sửa đổi màu sắc của các dòng và thêm nhãn tiêu đề và trục để làm cho biểu đồ hoàn thành:

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

#x-axis ranges from -5 and 5 with .001 steps
x = np.arange(-5, 5, 0.001)

#define multiple normal distributions
plt.plot(x, norm.pdf(x, 0, 1), label='μ: 0, σ: 1', color='gold')
plt.plot(x, norm.pdf(x, 0, 1.5), label='μ:0, σ: 1.5', color='red')
plt.plot(x, norm.pdf(x, 0, 2), label='μ:0, σ: 2', color='pink')

#add legend to plot
plt.legend(title='Parameters')

#add axes labels and a title
plt.ylabel('Density')
plt.xlabel('x')
plt.title('Normal Distributions', fontsize=14)

Hướng dẫn how do you display normal distribution in python? - làm thế nào để bạn hiển thị phân phối chuẩn trong python?

Tham khảo tài liệu matplotlib để biết giải thích chuyên sâu về hàm plt.plot ().plt.plot() function.

Làm thế nào để bạn hiển thị phân phối bình thường?

Để nhận dạng nhanh chóng và trực quan của một phân phối bình thường, hãy sử dụng biểu đồ QQ nếu bạn chỉ có một biến để xem và một biểu đồ hộp nếu bạn có nhiều. Sử dụng biểu đồ nếu bạn cần trình bày kết quả của mình cho công chúng phi thống kê. Là một bài kiểm tra thống kê để xác nhận giả thuyết của bạn, hãy sử dụng thử nghiệm Shapiro Wilk.use a QQ plot if you have only one variable to look at and a Box Plot if you have many. Use a histogram if you need to present your results to a non-statistical public. As a statistical test to confirm your hypothesis, use the Shapiro Wilk test.

Làm cách nào để kiểm tra xem dữ liệu có được phân phối bình thường trong Python không?

Cách kiểm tra tính quy tắc trong Python (4 phương pháp)..
(Phương pháp trực quan) Tạo biểu đồ ..
(Phương pháp trực quan) Tạo biểu đồ Q-Q ..
(Kiểm tra thống kê chính thức) Thực hiện thử nghiệm Shapiro-Wilk ..
(Kiểm tra thống kê chính thức) Thực hiện thử nghiệm Kolmogorov-Smirnov ..
Chuyển đổi nhật ký: Chuyển đổi các giá trị từ x sang log (x) ..

Làm thế nào để bạn vẽ một đường cong chuông trong Python?

Cách tiếp cận: Chúng tôi sẽ lập danh sách các điểm trên trục x và vượt qua các điểm này bên trong hàm PDF tùy chỉnh của chúng tôi để tạo chức năng phân phối xác suất để tạo giá trị y tương ứng với từng điểm trong x.Bây giờ chúng tôi vẽ đường cong bằng các phương thức Plot () và Scatter () có sẵn trong thư viện matplotlib.plot the curve using plot() and scatter() methods that are available in the matplotlib library.

Làm thế nào để bạn thêm một phân phối bình thường vào một biểu đồ trong Python?

Sử dụng Scipy ...
Dữ liệu = NP.ngẫu nhiên.Bình thường (0, 1, 1000) ....
_, thùng, _ = plt.Lịch sử (dữ liệu, 20, mật độ = 1, alpha = 0,5) tạo biểu đồ từ `data`.
Mu, Sigma = Scipy.số liệu thống kê.định mức.....
best_fit_line = scipy.số liệu thống kê.định mức.....
plt.Lô đất (Bins, Best_Fit_Line).