ValueError:数据(3)的长度和错误5不匹配
Posted
技术标签:
【中文标题】ValueError:数据(3)的长度和错误5不匹配【英文标题】:ValueError: The lengths of the data (3) and the error 5 do not match 【发布时间】:2022-01-18 03:15:29 【问题描述】:我正在使用下面这个简单的代码在 seaborn 中绘制数据:
df = pd.DataFrame([['A','car',10,1],
['A','plane',15,1],
['A','bike',25,3],
['B','plane',20,2],
['C','bike',30,3]],
columns = ['x','type','y', 'y_err'])
print(df)
fig, axes = plt.subplots(figsize=(5, 5))
sns.set_theme(style="darkgrid")
g = sns.barplot(
ax = axes, data=df,
x="x", y='y', hue="type",
palette="dark", alpha=.6
)
这是输出
当我尝试插入自定义错误栏时遇到问题,在 sns.barplot 函数中添加 yerr=df['y_err']
。
问题是:
ValueError: The lengths of the data (3) and the error 5 do not match
我使用 seaborn 是因为我需要根据上面示例中的特定 x 绘制不同数量的条形图。
【问题讨论】:
【参考方案1】:如果您根据需要pivot
您的数据,您可以在没有seaborn
的情况下执行此操作:
data = df.pivot("x", "type", "y")
errors = df.pivot("x", "type", "y_err")
data.plot.bar(yerr=errors)
输出:
【讨论】:
有没有办法让酒吧居中?例如,第二个刻度上的绿色条和第三个刻度上的蓝色条是分散的 它们是第一个完整组或列名。蓝色(自行车)是每组中最左边的。每个组不能有不同的中心。 那么有没有办法把它们集中起来呢?即使用其他方法也不行? @Alessandro 见***.com/questions/65141953/… @Alessandro - 不是说没有。但如果我知道一个,我会编辑我的答案。以上是关于ValueError:数据(3)的长度和错误5不匹配的主要内容,如果未能解决你的问题,请参考以下文章
Matplotlib Scatter - ValueError:RGBA 序列的长度应为 3 或 4
Pandas ValueError:值的长度与索引的长度不匹配 - 创建新列
ValueError:长度不匹配:在熊猫数据框中创建分层列时,预期的轴有 0 个元素
无法将列表转换为数据框。不断收到错误“ValueError: Must pass 2-d input.shape=(1, 4, 5)”