Python 使用Seaborn创建带点的水平箱线图
箱线图是可视化数据集中最受欢迎的工具之一,主要使用一个名为Seaborn的Python库创建。Seaborn提供了一种简单而强大的方式来创建水平和垂直的箱线图以及其他类型的可视化。
在本文中,我们将重点讨论如何使用Seaborn在Python中创建带有点的水平箱线图。
什么是箱线图
首先,让我们定义一下什么是箱线图。箱线图是数据集的图形表示,使用异常值、四分位数和中位数来传达数据的分布情况。图中间的箱子表示数据的四分位数范围(IQR),须延伸到趋于中位数的最小和最大值。异常值表示为超出须的个别点。
使用Seaborn创建带点的水平箱线图
让我们开始学习如何使用Seaborn在Python中创建带点的水平箱线图。我们将使用Seaborn库中名为“tips”的数据集,其中包含餐厅的总账单金额和一周中的某天的信息。
下面是我们将使用Seaborn在Python中创建带点的水平箱线图的步骤:
- 导入所有必需的库,如seaborn和matplotlib。
- 使用sns.load_dataset()函数加载“tips”数据集。
- 然后,我们可以使用sns.boxplot()函数创建一个水平箱线图。
- 设置x和y变量分别为“total_bill”和“day”,以在x轴上绘制总账单金额,在y轴上绘制一周中的某天。
- 我们还可以使用width和fliersize参数调整箱线图的宽度和异常值的大小。
- 最后,将orient参数设置为“h”以创建一个水平箱线图。
- 接下来,我们可以使用sns.swarmplot()函数将个别数据点添加到图表中。
- 再次设置x和y变量为“total_bill”和“day”,并使用size和color参数调整点的大小和颜色。
- 将orient参数设置为“h”以创建一个水平散点图。
- 最后,使用标准Matplotlib函数plt.title()、plt.xlabel()和plt.ylabel()添加标题和坐标轴标签。
- 使用plt.show()函数显示图表。
示例
import seaborn as snsb
import matplotlib.pyplot as pltt
# Load example dataset
tips_df = snsb.load_dataset("tips")
# Create horizontal boxplot with points
snsb.boxplot(x="total_bill", y="day", data=tips_df, whis=[0, 100], width=.6, fliersize=5, orient="h")
snsb.swarmplot(x="total_bill", y="day", data=tips_df, color=".2", size=3, orient="h")
# Add title and axis labels
pltt.title("Total Bill by Day")
pltt.xlabel("Total Bill ($)")
pltt.ylabel("Day of Week")
# Show plot
pltt.show()
输出
自定义水平盒图程序
import seaborn as snss
import matplotlib.pyplot as pltt
# Load example dataset
tips_df = snss.load_dataset("tips")
# Set style and color palette
snss.set_style("whitegrid")
snss.set_palette("husl")
# Create horizontal boxplot with points
snss.boxplot(x="total_bill", y="day", data=tips_df, whis=[0, 100], width=.6, fliersize=5, orient="h")
snss.swarmplot(x="total_bill", y="day", data=tips_df, color="black", size=4, orient="h")
# Customize plot appearance
pltt.title("Total Bill by Day", fontsize=14, fontweight="bold")
pltt.xlabel("Total Bill ($)", fontsize=12)
pltt.ylabel("Day of Week", fontsize=12)
pltt.xticks(fontsize=10)
pltt.yticks(fontsize=10)
# Adjust plot dimensions
pltt.figure(figsize=(8, 6))
# Show plot
pltt.show()
输出
- 在上述定制化程序中,我们首先导入必要的库,包括Seaborn和Matplotlib。
-
使用Seaborn的sns.load_dataset()函数加载一个名为”tips”的示例数据集。
-
通过使用sns.set_style()将样式设置为”whitegrid”来自定义绘图的外观。此外,我们使用sns.set_palette()将颜色调色板设置为”husl”。
-
使用sns.boxplot()创建水平盒图,将x和y变量分别设置为”total_bill”和”day”。
-
我们调整各种参数,如whis、width和fliersize,以定制盒图的外观。
-
为了添加个体数据点,我们使用sns.swarmplot()并自定义其颜色、大小和方向。
-
为了进一步定制绘图外观,我们使用Matplotlib的plt.title()、plt.xlabel()和plt.ylabel()函数修改标题、x轴标签和y轴标签。
-
我们还可以使用fontsize调整标题、标签和刻度线的字体大小。
-
此外,我们可以通过指定plt.figure()的图形大小来调整绘图的尺寸,并将所需尺寸作为元组传递。
-
最后,我们使用plt.show()显示定制的带有数据点的水平盒图。
结论
总之,在Python中使用Seaborn创建带有数据点的水平盒图是一种重要的数据可视化技术,用于可视化数据集、数据分布以及探索不同变量之间的关系。我们利用Seaborn的boxplot()和swarmplot()函数创建了外观吸引人的水平盒图,展示了关键的统计指标,如中位数、异常值和四分位数。