在 Python 中绘制列式蜂群图

Plotting a column-wise bee-swarm plot in Python

我有一个示例数据集:

A   B   C
23  45  3
53  78  46
23  68  24
52  68  57
52  79  76
78  79  13

我想绘制一个蜂群图,其中每一列代表 swarm/section。像:

我怎样才能做到这一点?我试过这个:

sns.swarmplot(y=A)

但它只给出了 1 个属性的群图,并且不包含组的标签。

在这里你应该尝试让你的DataFrame变成“长”格式。您可以使用 DataFrame.melt.

执行此操作

这会给你一个类似

的数据框
   variable  value
0         A     23
1         A     53
2         A     23
3         A     52
4         A     52
5         A     78
6         B     45
7         B     78
8         B     68
9         B     68
10        B     79
11        B     79
12        C      3
13        C     46
14        C     24
15        C     57
16        C     76
17        C     13

然后你可以像这样用Seaborn绘制它

sns.swarmplot(x="variable", y="value", data=df.melt())
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt

dataset = {
    'A': [23,53,23,52,52,78],
    'B': [45,78,68,68,79,79],
    'C': [3,46,24,57,76,13]
}

df = pd.DataFrame(dataset)

sns.swarmplot(x="variable", y="value", data=df.melt())
plt.show()