在python中使用barplot时如何修复AttributeError?

时间:2019-04-26 08:25:58

标签: python list bar-chart seaborn attributeerror

我正在尝试通过使用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)

不幸的是,我没有得到barplot,而是得到了以下一行:

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'

如何解决此错误?我需要提供其他格式的数据吗?

2 个答案:

答案 0 :(得分:1)

您已将数据作为列表给出,但它期望有一个字典

尝试从

更改代码
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)

答案 1 :(得分:0)

function documentation指定数据可选参数必须为DataFrame, array, or list of arrays,而您的是列表列表。但是,您也可以将各个数据数组直接传递到位置参数xy

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

应该做到这一点。