Создание боксплота из Pandas DataFrame с использованием Seaborn - PullRequest
0 голосов
/ 28 января 2019

У меня есть следующие Панды DataFrame, которые я использую для сравнения производительности различных классификаторов за несколько итераций.После каждой итерации я сохраняю ранжирование этого конкретного классификатора в DataFrame, который является совокупной суммой ранжирований по всем итерациям (индекс DataFrame указывает ранжирование от 0 до 3, то есть всего 4 классификатора и0 самый лучший).

DataFrame выглядит следующим образом:

rankings = {'Classifier1': ['1', '2', '1', '0'], 
            'Classifier2': ['2', '1', '1', '0'], 
            'Classifier3': ['0', '1', '1', '2'],
            'Classifier4': ['1', '0', '1', '2']}

df = pd.DataFrame(data = rankings)

, который форматируется как:

       Classifier1 Classifier2 Classifier3 Classifier4
0           1           2           0           1
1           2           1           1           0
2           1           1           1           1
3           0           0           2           2

Я хотел бы создать следующий блокпост (как в этот документ ) другого классификатора с использованием Seaborn или альтернативного метода:

enter image description here

1 Ответ

0 голосов
/ 28 января 2019

Во-первых, нам нужно преобразовать ваши данные в числовые значения, а не в строки.Затем мы расплавляем фрейм данных, чтобы получить его в длинном формате, и, наконец, применяем блочную диаграмму с графиком сверху

df = df.apply(pd.to_numeric).melt(var_name='Classifier', value_name='AUC Rank')
ax = sns.boxplot(data=df, x='Classifier', y='AUC Rank')
ax = sns.swarmplot(data=df, x='Classifier', y='AUC Rank', color='black')

Box plot with black points

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...