如何在Python中使用 Seaborn 制作带有数据点的箱线图?
先决条件:
- 海伯恩
- Matplotlib
箱线图或胡须图是一种以图形方式可视化的统计图,通过四分位数描述一组数值数据。此图显示包含五个值(称为最小值、四分位数 1、四分位数 2 或中位数、四分位数 3 和最大值)的数据集的摘要,其中框从第一个四分位数绘制到第三个四分位数。
通用箱线图主要侧重于上述五个元素,为用户提供基于四分位数的数据解释,但也可以在箱线图本身上显示数据点,从而提供更多信息。对于这个 seaborn 配备了 stripplot()函数,我们所要做的就是在 boxplot()函数之后调用它并使用适当的参数来生成带有数据点的箱线图。
条形图是单独绘制的。在显示所有观察结果以及底层分布的一些表示的情况下,它是对箱线图或小提琴图的一个很好的补充。它用于根据类别绘制散点图。
Syntax: seaborn.stripplot(*, x=None, y=None, hue=None, data=None, order=None, hue_order=None, jitter=True, dodge=False, orient=None, color=None, palette=None, size=5, edgecolor=’gray’, linewidth=0, ax=None, **kwargs)
Parameters:
- x, y, hue: Inputs for plotting long-form data.
- data: Dataset for plotting.
- order: It is the order to plot the categorical levels in.
- color: It is the color for all of the elements, or seed for a gradient palette
Returns: This method returns the Axes object with the plot drawn onto it.
方法:
- 导入库
- 创建或加载数据集。
- 使用 boxplot() 绘制箱线图。
- 使用 stripplot() 添加数据点。
- 显示图。
下面给出了一些实现,以帮助您更好地理解
示例 1:用于比较的常规箱线图
Python
# importing library
import seaborn as sns
import matplotlib.pyplot as plt
# loading seaborn dataset tips
tdata = sns.load_dataset('tips')
# creating boxplot
sns.boxplot(x='size', y='tip', data=tdata)
# display plot
plt.show()
Python
# importing library
import seaborn as sns
import matplotlib.pyplot as plt
# loading seaborn dataset tips
tdata = sns.load_dataset('tips')
# creating boxplot
sns.boxplot(x='size', y='tip', data=tdata)
# adding data points
sns.stripplot(x='size', y='tip', data=tdata)
# display plot
plt.show()
Python
# importing library
import seaborn as sns
import matplotlib.pyplot as plt
# loading seaborn dataset tips
tdata = sns.load_dataset('tips')
# creating boxplot
sns.boxplot(x='size', y='tip', data=tdata)
# adding data points
sns.stripplot(x='size', y='tip', data=tdata, color="grey")
# display plot
plt.show()
Python
# importing library
import seaborn as sns
import matplotlib.pyplot as plt
# loading seaborn dataset tips
tdata = sns.load_dataset('tips')
tdata = tdata.head(10)
# creating boxplot
sns.boxplot(x='size', y='tip', data=tdata)
# adding data points
sns.stripplot(x='size', y='tip', data=tdata, color="grey", size=8)
# display plot
plt.show()
Python
# importing library
import seaborn as sns
import matplotlib.pyplot as plt
# loading seaborn dataset tips
tdata = sns.load_dataset('tips')
tdata = tdata.head(20)
# creating boxplot
sns.boxplot(x='size', y='tip', data=tdata)
# adding data points
sns.stripplot(x='size', y='tip', data=tdata, color="black", size=8, alpha=0.5)
# display plot
plt.show()
输出:
示例 2:使用数据点创建箱线图
Python
# importing library
import seaborn as sns
import matplotlib.pyplot as plt
# loading seaborn dataset tips
tdata = sns.load_dataset('tips')
# creating boxplot
sns.boxplot(x='size', y='tip', data=tdata)
# adding data points
sns.stripplot(x='size', y='tip', data=tdata)
# display plot
plt.show()
输出:
示例 3:带有非默认颜色数据点的箱线图
Python
# importing library
import seaborn as sns
import matplotlib.pyplot as plt
# loading seaborn dataset tips
tdata = sns.load_dataset('tips')
# creating boxplot
sns.boxplot(x='size', y='tip', data=tdata)
# adding data points
sns.stripplot(x='size', y='tip', data=tdata, color="grey")
# display plot
plt.show()
输出:
示例 4:更改数据点的大小
Python
# importing library
import seaborn as sns
import matplotlib.pyplot as plt
# loading seaborn dataset tips
tdata = sns.load_dataset('tips')
tdata = tdata.head(10)
# creating boxplot
sns.boxplot(x='size', y='tip', data=tdata)
# adding data points
sns.stripplot(x='size', y='tip', data=tdata, color="grey", size=8)
# display plot
plt.show()
输出:
示例 5:绘制透明数据点
Python
# importing library
import seaborn as sns
import matplotlib.pyplot as plt
# loading seaborn dataset tips
tdata = sns.load_dataset('tips')
tdata = tdata.head(20)
# creating boxplot
sns.boxplot(x='size', y='tip', data=tdata)
# adding data points
sns.stripplot(x='size', y='tip', data=tdata, color="black", size=8, alpha=0.5)
# display plot
plt.show()
输出: