Seaborn Swarmplot
散点图是最基本和最有用的图形之一。Python 中的 seaborn 模块可以将此类图更进一步,并使用它们来表示分类值。
群图是一种散点图,用于表示分类值。它与带状图非常相似,但它避免了点的重叠。我们可以使用 seaborn.swarmplot()
来创建这样的图表。
当样本量很大时,不建议使用这种类型的图。
我们将在以下代码中使用 swarmplot()
函数为分类值创建这样的图表。
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
df = pd.DataFrame(
{
"Quantity": [5, 6, 7, 8, 5, 6, 7, 8, 5, 6, 7, 8, 5, 6, 7, 8],
"Price": [9, 10, 15, 16, 13, 14, 15, 18, 11, 12, 14, 15, 16, 17, 18, 19],
"Day": [1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2],
"Product": [
"A",
"A",
"A",
"A",
"B",
"B",
"B",
"B",
"A",
"A",
"A",
"A",
"B",
"B",
"B",
"B",
],
}
)
sns.swarmplot(data=df, y="Price", x="Quantity")
在上面的示例中,我们可以将 hue
参数添加到 swarmplot()
函数,并将两种不同产品的类别分开。我们可以使用 dodge
参数拆分两个产品并将其设置为 True。
此外,我们还可以在 swarmplot()
函数中使用其他一些参数。可以使用 size
和 color
参数更改点的大小和颜色。我们可以使用 palette
参数更改用于不同类别的颜色组合。linewidth
参数为指定宽度的点添加边框。可以使用 order
参数控制绘制类别的顺序。
我们将尝试在以下示例中使用上述参数。
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
df = pd.DataFrame(
{
"Quantity": [5, 6, 7, 8, 5, 6, 7, 8, 5, 6, 7, 8, 5, 6, 7, 8],
"Price": [9, 10, 15, 16, 13, 14, 15, 18, 11, 12, 14, 15, 16, 17, 18, 19],
"Day": [1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2],
"Product": [
"A",
"A",
"A",
"A",
"B",
"B",
"B",
"B",
"A",
"A",
"A",
"A",
"B",
"B",
"B",
"B",
],
}
)
sns.swarmplot(
data=df,
y="Price",
x="Quantity",
hue="Product",
dodge=True,
linewidth=2.5,
palette="Set2",
size=10,
)
swarmplot()
也可以用作对盒子或小提琴图的很好的赞美。它可以很好地了解数据的分布。
我们可以使用以下代码在群图上添加一个箱线图。
import random
import numpy as np
import seaborn as sns
n = random.sample(range(0, 50), 30)
arr = np.array(n)
sns.boxplot(n)
sns.swarmplot(n, color="red")
catplot()
函数也可以创建这样的群图。为此,我们需要将 catplot()
函数中 kind
参数的值指定为 swarm
。
Manav is a IT Professional who has a lot of experience as a core developer in many live projects. He is an avid learner who enjoys learning new things and sharing his findings whenever possible.
LinkedIn