0

我有一个示例数据集:

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

我想绘制一个蜂群图,其中每列代表蜂群/部分。像: 在此处输入图像描述

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

sns.swarmplot(y=A)

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

4

2 回答 2

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())
于 2021-03-23T21:08:08.853 回答
1
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()

在此处输入图像描述

于 2021-03-23T21:09:16.367 回答