在 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()
我有一个示例数据集:
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()