来自多个数据帧列的分类数据的散点图

2024-09-28 19:06:50 发布

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

我有一个数据帧df,如下所示:

   name         Int1        Int2         Int3
0     foob -2.534519e-05 -1.156744e-04 -1.410195e-04
1     arz  2.907239e-04  3.502863e-04  6.410102e-04
2     foo2 -2.140769e-04  4.214626e-04  2.073857e-04
3     bar  3.366116e-03 -6.125303e-04  2.753586e-03
4     rnd -5.014413e-05 -6.740579e-06 -5.688471e-05
5     baz  3.334906e-04 -7.846232e-05  2.550283e-04
6     rnd2 -6.111069e-04  2.194443e-03  1.583336e-03
7     tet  3.184057e-04  2.208398e-04  5.392455e-04

测向图应绘制为散点图,每个名称描述三个数据点(Int1、Int2、Int3)。在

目前,我正在使用seabornstripplot函数,如果我将每一列的绘图(例如x=name,y=Int1)分配给图形的同一个轴,这个函数就可以正常工作:

^{pr2}$

然而,我想用一种更好的方式来描绘这个,主要原因是有一个合适的图例和更好的定制。该解决方案也可以基于熊猫。在


Tags: 数据函数namedfbarbaztetfoo2
1条回答
网友
1楼 · 发布于 2024-09-28 19:06:50

这是我的解决方案。其实很简单:

df_melt=pd.melt(df,id_vars=['name'], var_name='intensities', value_name='values')
sns.stripplot(x="name", y="values", data=df_melt, hue='intensities')

这使用原始的df,并在pandasmelt函数的帮助下,生成一个新的df,其中包含一个单独的intensities列,每个名称的Int1Int2和{}值中的每一行。 第二行使用seabornstripplot来绘制df_melt,分别用Int1Int2和{}来着色

相关问题 更多 >