2024-05-23 17:25:33 发布
网友
我想在Seaborn条形图上绘制置信区间,但我已经计算了置信区间。我如何让Seaborn绘制我的置信区间,而不是自己计算它们
例如,假设我有以下数据帧:
x = pd.DataFrame([ ['Group 1', 0.5, 0.05], ['Group 1', 0.6, 0.07], ], columns=['Group', 'Mean', 'SD'])
如何用这些平均值和标准差绘制条形图
您可以使用seaborn绘制没有错误条的条形图。然后使用matplotlib的errorbar添加错误条。下面的代码假定'Group'列包含两个不同的值:
errorbar
'Group'
from matplotlib import pyplot as plt import seaborn as sns import pandas as pd x = pd.DataFrame([ ['Group 1', 0.5, 0.05], ['Group 2', 0.6, 0.07], ], columns=['Group', 'Mean', 'SD']) ax = sns.barplot(data=x, x='Group', y='Mean', color='dodgerblue') ax.errorbar(data=x, x='Group', y='Mean', yerr='SD', ls='', lw=3, color='black') plt.show()
下面是一个嵌套条的尝试。首先绘制错误条以获得其标准位置,并提取x坐标。然后移除这些条,并使用新位置再次创建。我不确定它是否在所有情况下都有效
from matplotlib import pyplot as plt import seaborn as sns import pandas as pd import numpy as np x = pd.DataFrame([ ['Group 1', 'A', 0.4, 0.08], ['Group 1', 'B', 0.5, 0.05], ['Group 1', 'C', 0.5, 0.02], ['Group 2', 'A', 0.6, 0.07], ['Group 2', 'B', 0.7, 0.09], ['Group 2', 'C', 0.7, 0.02], ['Group 3', 'A', 0.6, 0.07], ['Group 3', 'B', 0.2, 0.09], ['Group 3', 'C', 0.4, 0.11], ], columns=['Group', 'Subgroup', 'Mean', 'SD']) num_hues = len(np.unique(x['Subgroup'])) ax = sns.barplot(data=x, x='Group', y='Mean', hue='Subgroup') for (hue, df_hue), dogde_dist in zip(x.groupby('Subgroup'), np.linspace(-0.4, 0.4, 2 * num_hues + 1)[1::2]): bars = ax.errorbar(data=df_hue, x='Group', y='Mean', yerr='SD', ls='', lw=3, color='black') xys = bars.lines[0].get_xydata() bars.remove() ax.errorbar(data=df_hue, x=xys[:, 0] + dogde_dist, y='Mean', yerr='SD', ls='', lw=3, color='black') plt.show()
您可以使用seaborn绘制没有错误条的条形图。然后使用matplotlib的
errorbar
添加错误条。下面的代码假定'Group'
列包含两个不同的值:下面是一个嵌套条的尝试。首先绘制错误条以获得其标准位置,并提取x坐标。然后移除这些条,并使用新位置再次创建。我不确定它是否在所有情况下都有效
相关问题 更多 >
编程相关推荐