绘制数据帧行以进行比较

Plot rows of dataframe for comparison

我附有以下格式的数据。所以基本上对于每个测试数据,我有 10 个来自不同模型的观察结果。

现在,我想以如下所示的方式比较观察结果的可变性。因此,中心点代表所有观察值的平均值,所有值都显示为围绕它的箱线图。像下图这样的东西。这里中心的绿点代表平均值,直线显示 obs_1、obs_2 直到 obs_10.

我只能绘制简单的箱形图 post 转换数据,但它似乎在视觉上并不吸引人,因此尝试了类似的方法。请帮忙

您显示的图更像是 CI 图..而不是箱线图。不清楚条形图代表什么,平均值的 95% 置信度?所以不太确定你想要什么。

假设您的数据是这样的:

import pandas as pd
import numpy as np

df = pd.DataFrame(np.random.normal(0,1,(15,10)),
                  columns = ['obs_'+ str(i) for i in np.arange(1,11)])

每行的箱线图可以做:

df.T.boxplot()

平均值的 95% CI:

import seaborn as sns
ax = sns.pointplot(x="index", y="value",
 data=df.reset_index().melt(id_vars="index"), join=False)

要添加一些其他点,例如obs_1列:

ax.scatter(x = df.index , y= df['obs_1'],c = "k")