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

时间:2018-02-28 16:06:12

标签: python pandas plot seaborn scatter-plot

我对python相对较新,目前正在尝试使用pandas& amp;来创建基于某些数据的散点图。 seaborn。

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

Image of data

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

时的平均值

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

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

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

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

非常感谢提前!

1 个答案:

答案 0 :(得分: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轴上绘制的数据(使用x和{{ 1}}参数,分别)。您可以向y调用添加其他参数,并根据您的规范自定义绘图。