Python散点图设计 - 根据其他列值为x轴选择变量的特定值

问题描述 投票:1回答:1

我是python的新手,我目前正在尝试使用pandas和seaborn生成基于某些数据的散点图。

我正在使用的数据('ErrorMedianScatter')如下(对于链接道歉,我还没有获得嵌入图像的权限!):

Image of data

每个参与者都有两个感兴趣的数据点。 MissingLimb = 0或1时的平均值

我想为参与者创建一个散点图,其中当'MissingLimb'= 0时,x轴表示'mean'的值,而当'MissingLimb'= 1时,y轴表示'mean'的值。

我到目前为止使用当前代码来创建散点图:

sns.lmplot(("mean",
       "mean",
       data=ErrorMedianScatter,
       fit_reg=False,
       hue="participant")

这会产生一个功能完善但非常无趣的散点图。我坚持的是创建一个x- / y轴变量,允许我根据'MissingLimb'列的值指定我对参与者的意思感兴趣。

提前谢谢了!

python pandas plot seaborn scatter-plot
1个回答
0
投票

最有可能有多种方法来解决您的问题。我采用的方法是首先转换数据集,使每个参与者都有一行(观察),其中(每行)有一列报告MissingLimb为0的平均值和另一列报告MissingLimb为1的平均值的列。

您可以使用以下代码完成此数据转换:

df = pd.pivot_table(ErrorMedianScatter, 
                    values='mean', 
                    index='participant', 
                    columns='MissingLimb')

df.columns = ['MissingLimb 0', 'MissingLimb 1']

然后,您可以使用此(已转换的)数据框来创建散点图:

sns.lmplot(data=df, x='MissingLimb 0', y='MissingLimb 1')

请注意,除了指定要绘制的数据(使用data参数)之外,我还指定了要在x轴和y轴上绘制的数据(分别使用xy参数)。您可以向sns.lmplot调用添加其他参数,并根据您的规范自定义绘图。

© www.soinside.com 2019 - 2024. All rights reserved.