我有一个包含大约 320k 记录的数据集。其中,我想显示一个 swarmplot,其中 x 轴(Refined_ID
在本例中)类别的前 20 个实体按其计数。怎么能做到这一点?例如,如果我的数据是:
Refined_ID Refined_Age Name
e123 21 foo1
f123 19 bar1
z123 26 foo2
f123 29 bar2
e123 20 foo1
e1342 19 bar3
f123 20 foo3
我希望我的 x 轴被订购为:
e123 f123 z123
这是我的代码:
g = sns.swarmplot(x = dfAnalysis['Refined_ID'].iloc[:20],y = dfAnalysis['Refined_Age'], hue = dfAnalysis['Name'], orient="v")
g.set_xticklabels(g.get_xticklabels(),rotation=30)
由于数据框非常大,我将视图限制在前 20 行进行测试。
更新 1
假设没有办法对 seaborn 中的轴进行动态排序,这就是我希望输出的样子:
Refined_ID Refined_Age Name Count_of_Refined_ID
e123 21 foo1 2
f123 19 bar1 3
z123 26 foo2 1
f123 29 bar2 3
e123 20 foo1 3
e1342 19 bar3 1
f123 20 foo3 3
从这个数据框中,然后我想Refined_ID
根据它们的计数绘制前两个 s。在这种情况下,这两个类别将是e123
和f123
。该情节将具有:
x-axis: Refined ID (e123 and f123)
y-axis: Refined_Age (0 to 30)
Hue: Based on Name