在 python 中使用条形图时如何修复 AttributeError?

How to fix AttributeError when using barplot in python?

我正在尝试通过使用库 seaborn 从 python 中的一些数据中获取条形图。我的数据看起来像这样:

data_list = [[value_1, value_2, value_3, value_4], [1, 2, 3, 4]]

我现在正在尝试执行以下命令:

ax = sns.barplot(x = 'x_name', y = 'y_name', data = data_list)

不幸的是,我得到的不是条形图,而是以下行:

File "C:\Users\ (my name) \AppData\Local\Programs\Python\Python36-32\lib\site-packages\seaborn\categorical.py", line 146, in establish_variables            
x = data.get(x, x)  
AttributeError: 'list' object has no attribute 'get'

我该如何解决这个错误?我需要提供不同格式的数据吗?

您已将数据作为列表提供,但它需要一个字典

尝试更改您的代码

data_list = [[value_1, value_2, value_3, value_4], [1, 2, 3, 4]]

data_dict = {'value_1': 1, 'value_2': 2, 'value_3': 3, 'value_4': 4}
ax = sns.barplot(x = 'x_name', y = 'y_name', data = data_dict)

function documentation 指定数据可选参数需要是 DataFrame, array, or list of arrays,而你的是列表列表。但是您也可以将单个数据数组直接传递给位置参数 xy:

ax = sns.barplot(data_list[0], data_list[1])

应该可以解决问题。