我是python的新手,我目前正在尝试使用pandas和seaborn生成基于某些数据的散点图。
我正在使用的数据('ErrorMedianScatter')如下(对于链接道歉,我还没有获得嵌入图像的权限!):
每个参与者都有两个感兴趣的数据点。 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'列的值指定我对参与者的意思感兴趣。
提前谢谢了!
最有可能有多种方法来解决您的问题。我采用的方法是首先转换数据集,使每个参与者都有一行(观察),其中(每行)有一列报告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
和y
参数)。您可以向sns.lmplot
调用添加其他参数,并根据您的规范自定义绘图。