带有彩色编码Swarmlot的小提琴catplot

2024-10-06 11:21:02 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试创建一个axisgrid,其中包含用于划分数据帧的行和列。此外,网格中的每个轴都使用色调来划分数据帧,但这仍然不够。我还需要能够为内部Swarmlot添加色调。有没有办法做到始终如一

我的最佳尝试类似于以下代码:

import pandas as pd
import seaborn as sns

df = pd.read_csv('somefile.csv')

def swarm_small(*args, **kwargs):
    return sns.swarmplot(*args, **kwargs, size=5, dodge=True)

g = sns.catplot(
    x="nb_filters_0",
    y="Score",
    data=df,
    col="Metric",
    hue='loss_func',
    row="Cycle",
    kind="violin",
    inner=None,
    palette=sns.color_palette("Set1"),
)

g.map_dataframe(swarm_small, x="nb_filters_0", y="Score", alpha=0.3, hue='act')

然而,这段代码的结果是完全无法理解的: catplot with violin and color swarm overlay

我做错了什么?甚至有可能实现吗

最终结果应该与下图相似,但颜色不同的点而不是黑色 catplot with violin and black swarm inner

编辑

以下是有问题的数据集:

df.csv

,nb_filters_0,act,loss_func,Cycle,Score,Metric
0,32,swish,cat_CE,Training,0.8765937089920044,Accuracy
1,64,swish,cat_CE,Training,0.8688039183616638,Accuracy
2,32,swish,tversky_loss,Training,0.698259174823761,Accuracy
3,64,swish,tversky_loss,Training,0.7950736880302429,Accuracy
4,32,swish,cat_FL,Training,0.8331555128097534,Accuracy
5,64,swish,cat_FL,Training,0.8638719916343689,Accuracy
6,32,relu,cat_CE,Training,0.8520230650901794,Accuracy
7,64,relu,cat_CE,Training,0.8952963948249817,Accuracy
8,32,relu,tversky_loss,Training,0.7025752663612366,Accuracy
9,64,relu,tversky_loss,Training,0.7827157974243164,Accuracy
10,32,relu,cat_FL,Training,0.8294047117233276,Accuracy
11,64,relu,cat_FL,Training,0.852095901966095,Accuracy
12,32,swish,cat_CE,Training,0.8502687215805054,Accuracy
13,64,swish,cat_CE,Training,0.8697486519813538,Accuracy
14,32,swish,tversky_loss,Training,0.6427801847457886,Accuracy
15,64,swish,tversky_loss,Training,0.7923035621643066,Accuracy
16,32,swish,cat_FL,Training,0.8491067886352539,Accuracy
17,64,swish,cat_FL,Training,0.8384494185447693,Accuracy
18,32,relu,cat_CE,Training,0.8466424345970154,Accuracy
19,64,relu,cat_CE,Training,0.867074728012085,Accuracy
20,32,relu,tversky_loss,Training,0.7502149343490601,Accuracy
21,64,relu,tversky_loss,Training,0.7740712165832521,Accuracy
22,32,relu,cat_FL,Training,0.7964913249015808,Accuracy
23,64,relu,cat_FL,Training,0.8292904496192932,Accuracy
24,32,swish,cat_CE,Training,0.8586216568946838,Accuracy
25,64,swish,cat_CE,Training,0.8712390065193176,Accuracy
26,32,swish,tversky_loss,Training,0.6616958379745483,Accuracy
27,64,swish,tversky_loss,Training,0.747669517993927,Accuracy
28,32,swish,cat_FL,Training,0.8173601031303406,Accuracy
29,64,swish,cat_FL,Training,0.8551104068756104,Accuracy
30,32,relu,cat_CE,Training,0.8587247729301453,Accuracy
31,64,relu,cat_CE,Training,0.8767231702804565,Accuracy
32,32,relu,tversky_loss,Training,0.646480917930603,Accuracy
33,64,relu,tversky_loss,Training,0.7884039878845215,Accuracy
34,32,relu,cat_FL,Training,0.8235976696014404,Accuracy
35,64,relu,cat_FL,Training,0.8377344012260437,Accuracy
36,32,swish,cat_CE,Validation,0.6401047110557556,Accuracy
37,64,swish,cat_CE,Validation,0.6336396932601929,Accuracy
38,32,swish,tversky_loss,Validation,0.5975215435028076,Accuracy
39,64,swish,tversky_loss,Validation,0.6398745775222778,Accuracy
40,32,swish,cat_FL,Validation,0.6195285320281982,Accuracy
41,64,swish,cat_FL,Validation,0.6240124106407166,Accuracy
42,32,relu,cat_CE,Validation,0.6215344667434692,Accuracy
43,64,relu,cat_CE,Validation,0.6354994177818298,Accuracy
44,32,relu,tversky_loss,Validation,0.6076468229293823,Accuracy
45,64,relu,tversky_loss,Validation,0.6276207566261292,Accuracy
46,32,relu,cat_FL,Validation,0.6186338067054749,Accuracy
47,64,relu,cat_FL,Validation,0.6285740733146667,Accuracy
48,32,swish,cat_CE,Validation,0.633764386177063,Accuracy
49,64,swish,cat_CE,Validation,0.6309429407119751,Accuracy
50,32,swish,tversky_loss,Validation,0.5335019230842589,Accuracy
51,64,swish,tversky_loss,Validation,0.6061062216758728,Accuracy
52,32,swish,cat_FL,Validation,0.6340486407279968,Accuracy
53,64,swish,cat_FL,Validation,0.6088725924491882,Accuracy
54,32,relu,cat_CE,Validation,0.8922536969184875,Accuracy
55,64,relu,cat_CE,Validation,0.9081312417984008,Accuracy
56,32,relu,tversky_loss,Validation,0.7770249843597412,Accuracy
57,64,relu,tversky_loss,Validation,0.7961365580558777,Accuracy
58,32,relu,cat_FL,Validation,0.8293270468711853,Accuracy
59,64,relu,cat_FL,Validation,0.8605788946151733,Accuracy
60,32,swish,cat_CE,Validation,0.9083679914474488,Accuracy
61,64,swish,cat_CE,Validation,0.9231570959091188,Accuracy
62,32,swish,tversky_loss,Validation,0.6798871755599976,Accuracy
63,64,swish,tversky_loss,Validation,0.7721933126449585,Accuracy
64,32,swish,cat_FL,Validation,0.8365561366081238,Accuracy
65,64,swish,cat_FL,Validation,0.9076767563819884,Accuracy
66,32,relu,cat_CE,Validation,0.9083735942840576,Accuracy
67,64,relu,cat_CE,Validation,0.9186277985572816,Accuracy
68,32,relu,tversky_loss,Validation,0.6727029085159302,Accuracy
69,64,relu,tversky_loss,Validation,0.8116425871849059,Accuracy
70,32,relu,cat_FL,Validation,0.8642058372497559,Accuracy
71,64,relu,cat_FL,Validation,0.8650031089782715,Accuracy
0,32,swish,cat_CE,Training,0.6992514133453369,Jaccard1_coef
1,64,swish,cat_CE,Training,0.6838666200637817,Jaccard1_coef
2,32,swish,tversky_loss,Training,0.541182816028595,Jaccard1_coef
3,64,swish,tversky_loss,Training,0.6625087261199951,Jaccard1_coef
4,32,swish,cat_FL,Training,0.4892797768115997,Jaccard1_coef
5,64,swish,cat_FL,Training,0.538777232170105,Jaccard1_coef
6,32,relu,cat_CE,Training,0.6523236036300659,Jaccard1_coef
7,64,relu,cat_CE,Training,0.7349743843078613,Jaccard1_coef
8,32,relu,tversky_loss,Training,0.5458822846412659,Jaccard1_coef
9,64,relu,tversky_loss,Training,0.6459022164344788,Jaccard1_coef
10,32,relu,cat_FL,Training,0.483485758304596,Jaccard1_coef
11,64,relu,cat_FL,Training,0.5216267704963684,Jaccard1_coef
12,32,swish,cat_CE,Training,0.6501385569572449,Jaccard1_coef
13,64,swish,cat_CE,Training,0.6861822605133057,Jaccard1_coef
14,32,swish,tversky_loss,Training,0.4797120094299317,Jaccard1_coef
15,64,swish,tversky_loss,Training,0.6602866053581238,Jaccard1_coef
16,32,swish,cat_FL,Training,0.5129604935646057,Jaccard1_coef
17,64,swish,cat_FL,Training,0.4991211891174317,Jaccard1_coef
18,32,relu,cat_CE,Training,0.6434061527252197,Jaccard1_coef
19,64,relu,cat_CE,Training,0.6826991438865662,Jaccard1_coef
20,32,relu,tversky_loss,Training,0.6041868329048157,Jaccard1_coef
21,64,relu,tversky_loss,Training,0.635678768157959,Jaccard1_coef
22,32,relu,cat_FL,Training,0.4358433783054352,Jaccard1_coef
23,64,relu,cat_FL,Training,0.48638531565666204,Jaccard1_coef
24,32,swish,cat_CE,Training,0.6617934703826904,Jaccard1_coef
25,64,swish,cat_CE,Training,0.6894217133522034,Jaccard1_coef
26,32,swish,tversky_loss,Training,0.5005930066108704,Jaccard1_coef
27,64,swish,tversky_loss,Training,0.6017261147499084,Jaccard1_coef
28,32,swish,cat_FL,Training,0.4648773074150085,Jaccard1_coef
29,64,swish,cat_FL,Training,0.5289482474327087,Jaccard1_coef
30,32,relu,cat_CE,Training,0.6639690995216371,Jaccard1_coef
31,64,relu,cat_CE,Training,0.698374330997467,Jaccard1_coef
32,32,relu,tversky_loss,Training,0.4827720522880554,Jaccard1_coef
33,64,relu,tversky_loss,Training,0.6543636918067932,Jaccard1_coef
34,32,relu,cat_FL,Training,0.4764146208763122,Jaccard1_coef
35,64,relu,cat_FL,Training,0.4970998167991638,Jaccard1_coef
36,32,swish,cat_CE,Validation,0.44285941123962397,Jaccard1_coef
37,64,swish,cat_CE,Validation,0.4388552010059357,Jaccard1_coef
38,32,swish,tversky_loss,Validation,0.42977508902549744,Jaccard1_coef
39,64,swish,tversky_loss,Validation,0.4756670594215393,Jaccard1_coef
40,32,swish,cat_FL,Validation,0.3555472195148468,Jaccard1_coef
41,64,swish,cat_FL,Validation,0.3597340881824493,Jaccard1_coef
42,32,relu,cat_CE,Validation,0.4208705723285675,Jaccard1_coef
43,64,relu,cat_CE,Validation,0.4445495307445526,Jaccard1_coef
44,32,relu,tversky_loss,Validation,0.4412772357463837,Jaccard1_coef
45,64,relu,tversky_loss,Validation,0.4607005417346954,Jaccard1_coef
46,32,relu,cat_FL,Validation,0.3509494662284851,Jaccard1_coef
47,64,relu,cat_FL,Validation,0.3624703586101532,Jaccard1_coef
48,32,swish,cat_CE,Validation,0.4353385865688324,Jaccard1_coef
49,64,swish,cat_CE,Validation,0.44094502925872797,Jaccard1_coef
50,32,swish,tversky_loss,Validation,0.3692890405654907,Jaccard1_coef
51,64,swish,tversky_loss,Validation,0.4405812919139862,Jaccard1_coef
52,32,swish,cat_FL,Validation,0.35618722438812256,Jaccard1_coef
53,64,swish,cat_FL,Validation,0.3418772518634796,Jaccard1_coef
54,32,relu,cat_CE,Validation,0.6910256147384644,Jaccard1_coef
55,64,relu,cat_CE,Validation,0.7223582267761229,Jaccard1_coef
56,32,relu,tversky_loss,Validation,0.6390965580940247,Jaccard1_coef
57,64,relu,tversky_loss,Validation,0.6651307940483093,Jaccard1_coef
58,32,relu,cat_FL,Validation,0.4603268504142761,Jaccard1_coef
59,64,relu,cat_FL,Validation,0.5092442631721497,Jaccard1_coef
60,32,swish,cat_CE,Validation,0.7205176353454591,Jaccard1_coef
61,64,swish,cat_CE,Validation,0.7577159404754639,Jaccard1_coef
62,32,swish,tversky_loss,Validation,0.5216941833496094,Jaccard1_coef
63,64,swish,tversky_loss,Validation,0.6331548094749451,Jaccard1_coef
64,32,swish,cat_FL,Validation,0.4778961539268494,Jaccard1_coef
65,64,swish,cat_FL,Validation,0.564242959022522,Jaccard1_coef
66,32,relu,cat_CE,Validation,0.7253686785697937,Jaccard1_coef
67,64,relu,cat_CE,Validation,0.7498416900634766,Jaccard1_coef
68,32,relu,tversky_loss,Validation,0.5122449994087219,Jaccard1_coef
69,64,relu,tversky_loss,Validation,0.6864259839057922,Jaccard1_coef
70,32,relu,cat_FL,Validation,0.5021926760673523,Jaccard1_coef
71,64,relu,cat_FL,Validation,0.5110107064247131,Jaccard1_coef

Tags: 数据dftrainingcatvalidationrelucesns
1条回答
网友
1楼 · 发布于 2024-10-06 11:21:02

尝试不使用内部:

g = sns.catplot(
    x="nb_filters_0",
    y="Score",
    data=df,
    col="Metric",
    hue='loss_func',
    row="Cycle",
    kind="violin",
    palette=sns.color_palette("Set1"),
)

如果它不起作用,请提供一些数据来复制df

相关问题 更多 >