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

Posted

技术标签:

【中文标题】Python散点图设计 - 根据另一列值为x轴选择变量的特定值【英文标题】:Python scatterplot design - select specific values of a variable for the x axis based on another columns values 【发布时间】:2018-08-08 14:00:59 【问题描述】:

我对 python 比较陌生,目前正在尝试使用 pandas 和 seaborn 根据一些数据生成散点图。

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

Image of data

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

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

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

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

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

非常感谢!

【问题讨论】:

【参考方案1】:

很可能有多种方法可以解决您的问题。我要采取的方法是首先转换您的数据集,使每个参与者都有一行(观察),并且(对于每一行)有一个列报告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 调用添加其他参数,并根据您的规范自定义绘图。

【讨论】:

以上是关于Python散点图设计 - 根据另一列值为x轴选择变量的特定值的主要内容,如果未能解决你的问题,请参考以下文章

excel散点图 y轴对应有3组数据 画图的时候只弄出来一组 怎么加另2 组啊

python散点图横坐标文字倾斜

如何将时间用作带有seaborn的散点图的x轴?

请教一个问题:excel画散点图,怎么把x轴y轴的位置换到上方和右边啊?

excel绘制散点图时,如何进行分组绘图?

R语言 散点图