Hướng dẫn how do you plot a normal distribution of data in python? - làm cách nào để bạn vẽ biểu đồ phân phối dữ liệu bình thường trong python?

  • Lưu ý: Giải pháp này đang sử dụng pylab, không phải matplotlib.pyplot

Bạn có thể thử sử dụng hist để đặt thông tin dữ liệu của mình cùng với đường cong được trang bị như dưới đây:

import numpy as np
import scipy.stats as stats
import pylab as pl

h = sorted([186, 176, 158, 180, 186, 168, 168, 164, 178, 170, 189, 195, 172,
     187, 180, 186, 185, 168, 179, 178, 183, 179, 170, 175, 186, 159,
     161, 178, 175, 185, 175, 162, 173, 172, 177, 175, 172, 177, 180])  #sorted

fit = stats.norm.pdf(h, np.mean(h), np.std(h))  #this is a fitting indeed

pl.plot(h,fit,'-o')

pl.hist(h,normed=True)      #use this to draw histogram of your data

pl.show()                   #use may also need add this 

Hướng dẫn how do you plot a normal distribution of data in python? - làm cách nào để bạn vẽ biểu đồ phân phối dữ liệu bình thường trong python?


Để 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 plot a normal distribution of data in python? - làm cách nào để bạn vẽ biểu đồ phân phối dữ liệu bình thường 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 plot a normal distribution of data in python? - làm cách nào để bạn vẽ biểu đồ phân phối dữ liệu bình thường 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 plot a normal distribution of data in python? - làm cách nào để bạn vẽ biểu đồ phân phối dữ liệu bình thường 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 plot a normal distribution of data in python? - làm cách nào để bạn vẽ biểu đồ phân phối dữ liệu bình thường 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.