使用中位数而不是均值的Seaborn线图

时间:2018-09-26 20:17:23

标签: matplotlib seaborn median

我正在使用seaborn.lineplot()创建这样的线形图(代表均值的线,由代表std的带包围):

sns.lineplot(x="trial", y="rvalues", hue="subject", err_style="band", ci='sd', data=df)

enter image description here

我唯一的问题是,由于我的数据不是高斯数据,所以我更关心中位数而不是平均值。在Seaborn中该怎么做?

或者是否有类似的工具?我知道我可以在matplotlib中从头开始做,但是要使它变得如此好,需要很多工作。

2 个答案:

答案 0 :(得分:6)

estimator应该是熊猫方法。

使用estimator=np.median代替estimator="median"

sns.lineplot(x="trial", y="rvalues", hue="subject", err_style="band",
             ci='sd',
             estimator=np.median,
             data=df)

答案 1 :(得分:2)

来自the documentation

  

estimator:pandas方法的名称或可调用或无,可选
  在同一x级别上对y变量的多个观察结果进行聚合的方法。如果为None,将绘制所有观察结果。

因此尝试

sns.lineplot(x="trial", y="rvalues", hue="subject", err_style="band", 
             ci='sd', estimator="median", data=df)