我正在尝试通过使用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'
如何解决此错误?我需要提供其他格式的数据吗?
答案 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
,而您的是列表列表。但是,您也可以将各个数据数组直接传递到位置参数x
和y
:
ax = sns.barplot(data_list[0], data_list[1])
应该做到这一点。