Python 如何使用Seaborn制作箱线图和数据点
箱线图是一种强大的数据集分布摘要可视化工具,提供重要的统计参数,包括中位数、四分位数和可能的异常值。然而,传统的箱线图仅提供摘要统计数据,因此可能无法完整地呈现数据。
本文将学习如何使用Seaborn在Python中制作带有数据点的箱线图。Seaborn是一个基于matplotlib的受欢迎的数据可视化库,提供了一个复杂的界面来生成美观的统计可视化图。我们可以利用Seaborn和Matplotlib的功能创建具有重叠数据点的箱线图,以便对数据集进行更深入的分析。
多种方法
要在Python中使用Seaborn制作带有数据点的箱线图,我们可以采用两种方法:
- 通过在箱线图上添加数据点。
- 利用Swarmplot与箱线图。
让我们研究这两种方法:
方法1:通过在箱线图上添加数据点
通过在标准箱线图上添加单独的数据点,可以改进它们。通过可视化单个数据点和摘要统计信息,我们可以更好地理解数据集的分布。通过这种方法,我们可以检查数据中的异常值和模式,以获得深入的洞察。
步骤
步骤如下:
步骤1 :导入seaborn和matplotlib.pyplot。
步骤2 :准备或加载数据集。
步骤3 :使用seaborn.boxplot()函数以及数据集和所需的设置创建一个箱线图。
步骤4 :从箱线图中选择Axes项。
步骤5 :通过使用matplotlib.pyplot.scatter()方法遍历数据集,并绘制每个数据点。
步骤6 :根据需要调整箱线图和数据点的外观。
步骤7 :使用matplotlib.pyplot.show()显示绘图。
示例
#import the required modules
import seaborn as sns
import matplotlib.pyplot as plt
# The dataset are Loaded and generated
data = [10, 15, 20, 22, 25, 30, 32, 35, 40, 45, 50]
# Construct a boxplot
sns.boxplot(data=data)
# The Axes object is retrieved the Axes object
ax = plt.gca()
# Data points
for i, point in enumerate(data):
plt.scatter(i, point, color='red', alpha=0.5)
# Customize appearance
ax.set_xticklabels([]) # Hide x-axis labels (optional)
plt.xlabel('Data')
plt.ylabel('Values')
# Display the plot
plt.show()
输出
方法2:利用Swarmplot与Boxplots。
在这种方法中,我们同时使用Swarmplot和Boxplot来产生一个全面的可视化。Swarmplot将每个数据点排列在一起,使得数据集的显示更清晰。通过在Swarmplot上叠加一个Boxplot,我们可以同时查看个体数据点和总结统计信息,从而更全面地研究数据。当处理较大的数据集时,如果重叠的数据点可能掩盖模式和趋势,这种方法尤其有用。
步骤
具体步骤如下:
第1步 - 导入seaborn和matplotlib.pyplot。
第2步 - 创建或加载您的数据集。
第3步 - 使用seaborn.swarmplot()函数构建一个Swarmplot,提供数据集和所需的设置。
第4步 - 根据需要修改Swarmplot的外观。
第5步 - 使用seaborn.boxplot()函数,您可以在Swarmplot上叠加一个Boxplot。
第6步 - 根据需要修改Boxplot的外观。
第7步 - 使用matplotlib.pyplot.show()显示绘图。
示例
#import the required modules
import seaborn as sns
import matplotlib.pyplot as plt
# The dataset is Loaded and generated
data = [10, 15, 20, 22, 25, 30, 32, 35, 40, 45, 50]
# Build a swarmplot
sns.swarmplot(data=data, color='grey')
# Customize the appearance of swarmplot
plt.xlabel('Data')
plt.ylabel('Values')
# Overlay a boxplot
sns.boxplot(data=data, width=0.2, color='white')
# Customize the appearance of the boxplot
plt.ylim(0, 60)
# Show the plot
plt.show()
输出
结论
在本文中,我们使用Seaborn包介绍了两种在Python中制作盒图的方法。第二种方法使用了Swarmplot与Boxplots相结合。我们通过包含个体数据点来改进可视化效果,这使得我们可以更深入地查看数据集的分布情况。为了处理更大的数据集,我们学习了如何将swarmplot与boxplot组合以及如何将数据点叠加在boxplot上。由于Seaborn与Matplotlib的接口,这些图形可以进行高度定制以满足您的独特需求。这些方法使您能够通过可视化获得有见地的信息,并有说服力地呈现您的发现。