绘制数据帧行以进行比较
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")
我附有以下格式的数据。所以基本上对于每个测试数据,我有 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")