如何在 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 将改变图形的颜色(您也可以尝试Set1和Set3 )
蟒蛇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")
输出:
- 前-
- 后-
在这里,我们手动订购了箱线图。