📜  如何在 Seaborn 中手动订购 Boxplot?

📅  最后修改于: 2022-05-13 01:54:55.140000             🧑  作者: Mango

如何在 Seaborn 中手动订购 Boxplot?

Seaborn是一个了不起的可视化库,用于在Python中绘制统计图形。它提供了漂亮的默认样式和调色板,使统计图更具吸引力。它建立在 matplotlib 库的顶部,并且也紧密集成到 Pandas 的数据结构中。
Seaborn 旨在使探索和理解数据的核心部分可视化。它提供了面向数据集的 API,以便我们可以在相同变量的不同视觉表示之间切换,以便更好地理解数据集。

箱线图是通过四分位数描述的数值数据组的可视化表示。 Boxplot 还用于检测数据集中的异常值。它使用简单的盒子和胡须有效地捕获数据摘要,并允许我们轻松地进行跨组比较。箱线图使用第 25、50 和 75 个百分位数汇总样本数据。这些百分位数也称为下四分位数、中位数和上四分位数。

在本文中,我们将讨论如何手动订购箱线图。

使用的数据集

以下示例中使用的数据集是 https://www.kaggle.com/ranjeetjain3/seaborn-tips-dataset

循序渐进的方法:

  • 导入库
Python3
# import required modules
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns


Python3
# load dataset
tips= sns.load_dataset('tips')
 
# display top most rows
tips.head()


Python3
# illustrate box plot
fx = sns.boxplot(x='day', y='total_bill', data=tips, hue='sex', palette='Set2')


Python3
# illustrating box plot with order
fx = sns.boxplot(x='day', y='total_bill', data=tips, order=[
                 'Sun', 'Sat', 'Fri', 'Thur'], hue='sex', palette='Set2')


Python3
# import required modules
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
 
 
# load dataset
tips= sns.load_dataset('tips')
 
 
# display top most rows
tips.head()                     
 
 
# illustrating box plot with order
sns.boxplot(x='day', y='total_bill', data=tips, order=[
                 'Sun', 'Sat', 'Fri', 'Thur'], hue='sex', palette='Set2')


Python3
# import required modules
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
 
 
# load dataset
tips = sns.load_dataset('tips')
 
 
# display top most rows
tips.head()
 
 
# plotting the boxplot taking time on x-axis
fx = sns.boxplot(x="time", y="total_bill", hue="smoker",
                 data=tips, palette="Set1")
 
# illustrating box plot with order
ax = sns.boxplot(x="time", y="total_bill", hue="smoker", order=['Dinner', 'Lunch'],
                 data=tips, palette="Set1")



  • 加载数据集

蟒蛇3

# load dataset
tips= sns.load_dataset('tips')
 
# display top most rows
tips.head()                     

输出:

  • 绘制箱线图。

蟒蛇3

# illustrate box plot
fx = sns.boxplot(x='day', y='total_bill', data=tips, hue='sex', palette='Set2')

输出:

  • 使用seaborn绘制箱线图。看上图的顺序和根据我们的需要设置顺序后的区别。 Palette 将改变图形的颜色(您也可以尝试Set1Set3

蟒蛇3

# illustrating box plot with order
fx = sns.boxplot(x='day', y='total_bill', data=tips, order=[
                 'Sun', 'Sat', 'Fri', 'Thur'], hue='sex', palette='Set2')

输出:

  • 两个图放在一起:

以下是基于上述方法的完整程序:

示例 1

蟒蛇3

# import required modules
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
 
 
# load dataset
tips= sns.load_dataset('tips')
 
 
# display top most rows
tips.head()                     
 
 
# illustrating box plot with order
sns.boxplot(x='day', y='total_bill', data=tips, order=[
                 'Sun', 'Sat', 'Fri', 'Thur'], hue='sex', palette='Set2')

输出:

示例 2

现在, 使用不同的特征绘制箱线图。观察下图中 x 轴上的顺序:

蟒蛇3

# import required modules
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
 
 
# load dataset
tips = sns.load_dataset('tips')
 
 
# display top most rows
tips.head()
 
 
# plotting the boxplot taking time on x-axis
fx = sns.boxplot(x="time", y="total_bill", hue="smoker",
                 data=tips, palette="Set1")
 
# illustrating box plot with order
ax = sns.boxplot(x="time", y="total_bill", hue="smoker", order=['Dinner', 'Lunch'],
                 data=tips, palette="Set1")

输出:

  • 前-

  • 后-

在这里,我们手动订购了箱线图。