使用具有NaN的组按颜色散点绘制不同的组

2024-09-27 23:18:24 发布

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

我有一个熊猫的数据框架:

               d1_a    d2_a               d3_a    group

BI59           NaN     0.023333           NaN     2
BI71           NaN     0.173333           NaN     2
BI52           NaN          NaN           NaN     1
BI44      0.450000          NaN           NaN     1
BI36           NaN     0.286667           NaN     2
BI29           NaN     0.030000           NaN     2
BI50           NaN     0.633333           NaN     2
BI63           NaN     0.110000           NaN     2
BI64           NaN     0.320000           NaN     2
BI65      0.206667          NaN           NaN     1
BI67           NaN     0.216667           NaN     2
BI68           NaN     0.473333           NaN     2
BI71           NaN     0.053333           NaN     2
BI72           NaN     0.006667           NaN     2
BI75           NaN     0.430000           NaN     2
BI76           NaN     0.260000           NaN     2
BI78           NaN     0.250000           NaN     2
BI81           NaN     0.006667           NaN     2
BI83           NaN     0.603333           NaN     2
BI84           NaN          NaN      0.196667     3
BI86           NaN          NaN      0.046667     3
BI89           NaN     0.110000           NaN     2
BI91           NaN          NaN      0.213333     3
BI93           NaN     0.443333           NaN     2
BI97      0.586667          NaN           NaN     1
BI98      0.380000          NaN           NaN     1
BI99      0.016667          NaN           NaN     1
BI11           NaN     0.206667           NaN     2
BI12           NaN     0.500000           NaN     2
BI17      0.626667          NaN           NaN     1

BI##是索引列,行所属的组由group列表示。因此,d1_a为第1组,d2_a为第2组,d3_a为第3组。另外,索引列上的数字将是x轴。如何创建散点图,每个组用不同的颜色表示?当我试着绘制时,我得到的是空的图。在

如果我尝试类似subset_d1_a = df['d1_a'].dropna()的方法,并对每个组做类似的操作,那么我可以删除nan,但是现在数组的长度不同,我无法将它们全部绘制在同一个图上。在

最好我希望在seaborn中这样做,但是python中的任何方法都可以。在

到目前为止,这是我正在做的,现在确定我是否走上了正确的道路:

^{pr2}$

Tags: 数据方法框架group绘制nand2d1
1条回答
网友
1楼 · 发布于 2024-09-27 23:18:24

不清楚散点图在您的数据下会是什么样子,但您可以这样做:

colors = {1: 'red', 2: 'green', 3: 'blue'}
df.iloc[:, :3].sum(axis=1).plot(kind='bar', colors=df.group.map(colors).tolist()

enter image description here

相关问题 更多 >

    热门问题