Chr*_*ris 3 matplotlib median seaborn
我seaborn.lineplot()用来创建这样的折线图(代表均值的线,由代表std的带包围):
sns.lineplot(x="trial", y="rvalues", hue="subject", err_style="band", ci='sd', data=df)
Run Code Online (Sandbox Code Playgroud)
我唯一的问题是,由于我的数据不是高斯数据,因此我更关心中位数而不是均值。在Seaborn中该怎么做?
还是有类似的工具可以?我知道我可以在matplotlib中从头开始做,但是要使它变得如此好,需要大量的工作。
estimator 应该是熊猫方法。
使用estimator=np.median代替estimator="median"。
sns.lineplot(x="trial", y="rvalues", hue="subject", err_style="band",
ci='sd',
estimator=np.median,
data=df)
Run Code Online (Sandbox Code Playgroud)
estimator:pandas 方法的名称或可调用或无,可选
方法,用于聚合同一 x 级别的 y 变量的多个观察值。如果没有,则将绘制所有观察结果。
data:datapandas.DataFrame、numpy.ndarray、 映射或序列
因此,请尝试以下操作,其中ci='sd'必须指定。
sns.lineplot(x="trial", y="rvalues", hue="subject", err_style="band",
ci='sd', estimator="median", data=df)
Run Code Online (Sandbox Code Playgroud)
如果不使用ci='sd',则estimator应该是numpy方法调用,而不是字符串。
python 3.10, pandas 1.4.3, matplotlib 3.5.1,seaborn 0.11.2sns.lineplot(x="trial", y="rvalues", hue="subject", err_style="band",
ci='sd', estimator="median", data=df)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1992 次 |
| 最近记录: |