【发布时间】:2017-06-20 09:35:58
【问题描述】:
我有一个 pandas 数据框 df,它有四列:Candidate、Sample_Set、Values 和 Error。例如,Candidate 列有三个唯一条目:[X, Y, Z],我们有三个样本集,因此Sample_Set 也有三个唯一值:[1,2,3]。 df 大致如下所示。
import pandas as pd
data = {'Candidate': ['X', 'Y', 'Z', 'X', 'Y', 'Z', 'X', 'Y', 'Z'],
'Sample_Set': [1, 1, 1, 2, 2, 2, 3, 3, 3],
'Values': [20, 10, 10, 200, 101, 99, 1999, 998, 1003],
'Error': [5, 2, 3, 30, 30, 30, 10, 10, 10]}
df = pd.DataFrame(data)
# display(df)
Candidate Sample_Set Values Error
0 X 1 20 5
1 Y 1 10 2
2 Z 1 10 3
3 X 2 200 30
4 Y 2 101 30
5 Z 2 99 30
6 X 3 1999 10
7 Y 3 998 10
8 Z 3 1003 10
我正在使用seaborn 使用x="Candidate"、y="Values"、hue="Sample_Set" 创建分组条形图。一切都很好,直到我尝试使用名为 Error 的列下的值沿 y 轴添加一个误差线。我正在使用以下代码。
import seaborn as sns
ax = sns.factorplot(x="Candidate", y="Values", hue="Sample_Set", data=df,
size=8, kind="bar")
如何合并错误?
我希望有解决方案或更优雅的方法来完成这项任务。
【问题讨论】:
-
seaborn通常是matplotlib的扩展,所以无论您在seaborn中无法实现什么,您都可以使用前者的工具入侵您的输出 (ax) .你有一个直观的例子来说明“错误栏”的含义吗?你的意思是bar plot 吗? -
谢谢@ResMar。是的,您引用的条形图中的黑色垂直线。我正在使用 matplotlib 功能。我只需要提取结果分组条形图的数字 x 和 y 值。
-
否则有人可能会给我一个答案让我感到惊讶,但我认为没有“优雅”的方式来做这件事。
seaborn通过聚合许多观察结果在barplot中生成这些误差线,而您的数据已经预先聚合。
标签: pandas seaborn python pandas matplotlib seaborn bar-chart