Boxplot tốt nhất trong python

Boxplot là một biểu đồ được sử dụng để trực quan hóa cách một dữ liệu (biến) nhất định được phân phối bằng cách sử dụng các phần tư. Nó hiển thị phần tư tối thiểu, tối đa, trung bình, phần tư thứ nhất và phần tư thứ ba trong tập dữ liệu

một boxplot là gì?

Biểu đồ hộp là phương pháp để hiển thị bằng đồ họa sự lây lan của một biến số thông qua các phần tư

Từ hình ảnh bên dưới, bạn có thể thấy những thông tin chúng ta thường nhận được từ biểu đồ hộp

Boxplot tốt nhất trong python

 

Làm thế nào để giải thích cốt truyện hộp?

Phần dưới cùng của hộp (màu xanh lá cây) là phần trăm 25% và phần trên cùng là giá trị phần trăm 75% của dữ liệu

Vì vậy, về cơ bản, hộp đại diện cho 50% giữa của tất cả các điểm dữ liệu đại diện cho vùng lõi khi dữ liệu được định vị. Chiều cao của boxplot còn được gọi là Inter Quartile Range (IQR), về mặt toán học là sự khác biệt giữa giá trị phần trăm thứ 75 và 25 của dữ liệu

Đường đậm ở giữa hộp biểu thị trung vị. Trong khi đó, râu trên và dưới đánh dấu 1. 5 lần IQR từ trên cùng (và dưới cùng) của hộp

Nhưng, tại sao râu lại quan trọng?

Bởi vì, những điểm nằm ngoài ria mép, tức là (1. 5 x IQR) theo cả hai hướng thường được coi là ngoại lệ

Hãy tạo một tập dữ liệu nhân tạo và trực quan hóa dữ liệu bằng biểu đồ hộp. Để tạo tập dữ liệu nhân tạo, tôi đã sử dụng lệnh

# Boxplot with Pandas
df.plot.box(title='Boxplot with pandas');
1 từ numpy để tạo các giá trị ngẫu nhiên trong khoảng từ 0-1 cho từng phần tử trong mảng

Và tôi đã chỉ định độ dài của Dataframe là 50×3 làm đối số trong hàm

import pandas as pd
import numpy as np
df = pd.DataFrame(np.random.rand(50, 3), columns=['A', 'B', 'C'])
df.head()

ABC00. 1600390. 2883360. 48937710. 9473440. 8976780. 35633320. 4861240. 9289320. 26384630. 0225010. 7008350. 29808840. 7424290. 5038430. 296938

Tập dữ liệu chứa 50 giá trị được chọn ngẫu nhiên trong khoảng từ 0-1 trong mỗi cột

Việc xem xét dữ liệu này và tìm ra phân phối của nó sẽ mất nhiều thời gian, đó là lúc sử dụng biểu đồ phân phối như boxplot có ích

Boxplot cơ bản sử dụng thư viện gấu trúc

Vì chúng tôi đang xử lý khung dữ liệu gấu trúc, bạn có thể tạo boxplot trực tiếp bằng thư viện

# Boxplot with Pandas
df.plot.box(title='Boxplot with pandas');
2

Chương trình nhà khoa học dữ liệu công nghiệp MLPlus

Bạn có muốn học Khoa học dữ liệu từ các Nhà khoa học dữ liệu có kinh nghiệm không?

Xây dựng sự nghiệp khoa học dữ liệu của bạn với bằng cấp được ngành công nhận trên toàn cầu. Giải quyết các dự án với dữ liệu thực của công ty và trở thành Nhà khoa học dữ liệu được chứng nhận trong vòng chưa đầy 12 tháng.

Boxplot tốt nhất trong python

Nhận khóa học Python hoàn chỉnh miễn phí

Xây dựng sự nghiệp khoa học dữ liệu của bạn với bằng cấp được ngành công nhận trên toàn cầu. Có được tư duy, sự tự tin và các kỹ năng khiến Nhà khoa học dữ liệu trở nên có giá trị

# Boxplot with Pandas
df.plot.box(title='Boxplot with pandas');
3 là DataFrame ta tạo lúc trước, để vẽ boxplot ta dùng lệnh
# Boxplot with Pandas
df.plot.box(title='Boxplot with pandas');
4

# Boxplot with Pandas
df.plot.box(title='Boxplot with pandas');

Boxplot tốt nhất trong python

Từ đây, bạn có thể thấy giá trị trung bình cho từng phân phối và cả các nhóm tứ phân vị khác nhau

Vẽ một boxplot bằng matplotlib

Để sử dụng matplotlib, trước tiên bạn cần nhập thư viện matplotlib. Nếu muốn, bạn có thể thay đổi các tham số mặc định bằng cách sử dụng chức năng Hàm

# Boxplot with Pandas
df.plot.box(title='Boxplot with pandas');
5

Sau đó, sử dụng

# Boxplot with Pandas
df.plot.box(title='Boxplot with pandas');
6 để vẽ dữ liệu

________số 8_______

Boxplot tốt nhất trong python

Ngoài ra, bạn có thể trực quan hóa phân phối với sự kết hợp của biểu đồ tần số và biểu đồ mật độ. Điều này rất đơn giản để tạo với

# Boxplot with Pandas
df.plot.box(title='Boxplot with pandas');
7

# Histogram and density
import seaborn as sns

sns.distplot(df['A'], hist=True, kde=True, 
             bins=int(180/5), color = 'darkblue', 
             hist_kws={'edgecolor':'black'},
             kde_kws={'linewidth': 4});

Boxplot tốt nhất trong python

Boxplot có khía trong matplotlib

Boxplot có khía cho phép bạn đánh giá khoảng tin cậy (theo mặc định là khoảng tin cậy 95%) cho các trung vị của mỗi boxplot

Để tạo rãnh, hãy đặt

# Boxplot with Pandas
df.plot.box(title='Boxplot with pandas');
8 trong hàm
# Boxplot with Pandas
df.plot.box(title='Boxplot with pandas');
9

# Notched box plot
plt.boxplot(df['A'],notch=True);

Boxplot tốt nhất trong python

Vẽ boxplot bằng seaborn

Hãy xem xét một tập dữ liệu hiện có – Titanic Dataset

Bộ dữ liệu này chứa dữ liệu về việc người đó có sống sót hay không trong vụ chìm tàu ​​Titanic và các thông tin chi tiết khác về người đó

Bạn có thể tải xuống bộ dữ liệu được sử dụng bên dưới từ liên kết. https. //github. com/ven-27/datasets/blob/master/titanic. csv

# Import data
df=pd.read_csv("https://raw.githubusercontent.com/ven-27/datasets/master/titanic.csv")
df.head()

Boxplot tốt nhất trong python

Ta có thể thấy tập dữ liệu chứa thông tin hành khách của tàu Titanic và cột Survived cho biết họ có sống sót hay không. Bây giờ, hãy xem xét sự phân bố những người sống sót dựa trên độ tuổi của hành khách

Chúng tôi sử dụng chức năng

# Load package
import pandas as pd, numpy as np
import matplotlib.pyplot as plt
%matplotlib inline
plt.rcParams.update({'figure.figsize':(7,5), 'figure.dpi':100})

# Creating dataset
df = pd.DataFrame(np.random.rand(500, 1), columns=['A'])

# plot
plt.boxplot(df['A'], boxprops=dict(color='red'))
plt.title('Simple Boxplot');
0 để vẽ biểu đồ hộp trong thư viện seaborn

# Boxplot with Seaborn
import seaborn as sns
sns.set_style('whitegrid')
ax= sns.boxplot(x='Survived',y='Age',data=df)
ax = sns.stripplot(x="Survived", y="Age",data=df)

Boxplot tốt nhất trong python

Hàm

# Load package
import pandas as pd, numpy as np
import matplotlib.pyplot as plt
%matplotlib inline
plt.rcParams.update({'figure.figsize':(7,5), 'figure.dpi':100})

# Creating dataset
df = pd.DataFrame(np.random.rand(500, 1), columns=['A'])

# plot
plt.boxplot(df['A'], boxprops=dict(color='red'))
plt.title('Simple Boxplot');
1 thêm các dấu chấm, rõ ràng cung cấp thêm thông tin về phân phối điểm. Trong trường hợp này, phân phối dường như khá đồng đều, nhưng chúng tôi không thể nói chắc chắn chỉ với điều này. Một cốt truyện vĩ cầm có thể giúp ích ở đây (trong phần bên dưới)

Sơ đồ hạng hành khách (

# Load package
import pandas as pd, numpy as np
import matplotlib.pyplot as plt
%matplotlib inline
plt.rcParams.update({'figure.figsize':(7,5), 'figure.dpi':100})

# Creating dataset
df = pd.DataFrame(np.random.rand(500, 1), columns=['A'])

# plot
plt.boxplot(df['A'], boxprops=dict(color='red'))
plt.title('Simple Boxplot');
2) của
# Load package
import pandas as pd, numpy as np
import matplotlib.pyplot as plt
%matplotlib inline
plt.rcParams.update({'figure.figsize':(7,5), 'figure.dpi':100})

# Creating dataset
df = pd.DataFrame(np.random.rand(500, 1), columns=['A'])

# plot
plt.boxplot(df['A'], boxprops=dict(color='red'))
plt.title('Simple Boxplot');
3


sns.set_style('whitegrid')
ax= sns.boxplot(x='Pclass',y='Age',data=df)
ax = sns.stripplot(x="Pclass", y="Age",data=df)

Boxplot tốt nhất trong python

Âm mưu

# Load package
import pandas as pd, numpy as np
import matplotlib.pyplot as plt
%matplotlib inline
plt.rcParams.update({'figure.figsize':(7,5), 'figure.dpi':100})

# Creating dataset
df = pd.DataFrame(np.random.rand(500, 1), columns=['A'])

# plot
plt.boxplot(df['A'], boxprops=dict(color='red'))
plt.title('Simple Boxplot');
4 của
# Load package
import pandas as pd, numpy as np
import matplotlib.pyplot as plt
%matplotlib inline
plt.rcParams.update({'figure.figsize':(7,5), 'figure.dpi':100})

# Creating dataset
df = pd.DataFrame(np.random.rand(500, 1), columns=['A'])

# plot
plt.boxplot(df['A'], boxprops=dict(color='red'))
plt.title('Simple Boxplot');
3

sns.set_style('whitegrid')
ax= sns.boxplot(x='Parch',y='Age',data=df)
ax = sns.stripplot(x="Parch", y="Age",data=df)

Boxplot tốt nhất trong python

Giải thích từ các đồ thị trên

Sử dụng biểu đồ, bạn có thể thấy phân phối Độ tuổi cho Hạng hành khách – 1,2,3 và liệu người đó có sống sót hay không

Bạn cũng có thể thấy vị trí của 'kem dữ liệu' theo vị trí của hộp. Cũng có nhiều ngoại lệ trong 'Tuổi' khi chia cho

# Load package
import pandas as pd, numpy as np
import matplotlib.pyplot as plt
%matplotlib inline
plt.rcParams.update({'figure.figsize':(7,5), 'figure.dpi':100})

# Creating dataset
df = pd.DataFrame(np.random.rand(500, 1), columns=['A'])

# plot
plt.boxplot(df['A'], boxprops=dict(color='red'))
plt.title('Simple Boxplot');
4

Chúng được đặc trưng bởi các điểm nằm bên ngoài râu

Từ biểu đồ hộp trên với phân phối, chúng ta có thể thấy rằng độ tuổi trung bình của một người ở khoang hạng nhất là khoảng 38 và của một người ở khoang hạng hai là 29 và của một người ở khoang hạng ba là khoảng 24

Nó dường như ngụ ý rằng những người lớn tuổi có xu hướng đi du lịch trong tầng lớp thượng lưu

sns.set_style('whitegrid')
ax= sns.boxplot(x='Pclass',y='Age',data=df,notch=True)
ax = sns.stripplot(x="Pclass", y="Age",data=df)

Boxplot tốt nhất trong python

Chúng ta cũng có thể nói rằng vì các rãnh của các ô vuông không trùng với nhau, nên chúng ta có thể kết luận với khoảng tin cậy 95% rằng các trung vị khác nhau đối với cả 3 lớp

Violin Plot – Một loại biểu đồ tìm kiếm phân phối khác

Thay vì sử dụng biểu đồ hộp, chúng ta cũng có thể vẽ biểu đồ vĩ cầm cũng cho thấy sự phân phối bằng cách sử dụng chức năng

# Load package
import pandas as pd, numpy as np
import matplotlib.pyplot as plt
%matplotlib inline
plt.rcParams.update({'figure.figsize':(7,5), 'figure.dpi':100})

# Creating dataset
df = pd.DataFrame(np.random.rand(500, 1), columns=['A'])

# plot
plt.boxplot(df['A'], boxprops=dict(color='red'))
plt.title('Simple Boxplot');
7

Chiều rộng của vĩ cầm rộng hơn ở những nơi tập trung nhiều điểm dữ liệu hơn

# Boxplot with Pandas
df.plot.box(title='Boxplot with pandas');
0

Boxplot tốt nhất trong python

Biểu đồ trên cho thấy sự phân bố của Tuổi so với việc người đó có sống sót hay không sử dụng âm mưu vĩ cầm