Как исправить AttributeError при использовании barplot в python? - PullRequest
0 голосов
/ 26 апреля 2019

Я пытаюсь получить барплот из некоторых данных в python через библиотеку seaborn. Мои данные выглядят примерно так:

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'

Как я могу исправить эту ошибку? Нужно ли предоставлять данные в другом формате?

Ответы [ 2 ]

1 голос
/ 26 апреля 2019

Вы указали данные в виде списка, но они ожидают ввода

Попробуйте изменить код с

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)
0 голосов
/ 26 апреля 2019

Документация к функции указывает, что необязательный аргумент data должен быть DataFrame, array, or list of arrays, тогда как ваш - это список списков. Но вы также можете просто передать отдельные массивы данных непосредственно позиционным аргументам x и y:

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

Должен сделать свое дело.

...