Сортировать ось X для sns.countplot - PullRequest
0 голосов
/ 26 апреля 2020

Я пробираюсь через: https://medium.com/analytics-vidhya/exploratory-data-analysis-of-the-hotel-booking-demand-with-python-200925230106

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

Для вопроса № 6, часть вторая (Давайте посмотрим тренд продолжительности пребывания для каждого типа отеля. ) Я получаю точно такой же вывод, как показано в статье. Однако ось X неправильно отсортирована, и я пытаюсь исправить это, поскольку у меня есть все предыдущие выходные данные.

Вот мой код для вопроса № 6, включая первую часть, где я исправил порядок сортировки:

# 6. How long do people stay in the hotel?
df_not_canceled2 = df_not_canceled.copy()
total_nights = df_not_canceled2['stays_in_weekend_nights'] + df_not_canceled2['stays_in_week_nights']
x5, y5, z5 = get_count(total_nights, limit=10)

x5 = x5[[0, 2, 1, 3, 5, 6, 4, 8, 7, 9]]
y5 = y5[[0, 2, 1, 3, 5, 6, 4, 8, 7, 9]]
z5 = z5[[0, 2, 1, 3, 5, 6, 4, 8, 7, 9]]

plot(x5, y5, x_label='Number of Nights', y_label='Booking Percentage (%)', title='Night Stay Duration (Top 10)', figsize =(10, 5))
plt.show()

# The stay duration trend for each hotel type.
df_not_canceled2.loc[:, 'total_nights'] = df_not_canceled2['stays_in_weekend_nights'] + df_not_canceled2['stays_in_week_nights']
df_not_canceled2 = df_not_canceled2.sort_values(by=['total_nights']).reset_index(drop=True)

fig1, ax = plt.subplots(figsize=(12, 6))
ax.set_xlabel('No of Nights')
ax.set_ylabel('No of Nights')
ax.set_title('Hotel wise night stay duration (Top 10)')

sns.countplot(x='total_nights', hue='hotel', data=df_not_canceled2,
              order=df_not_canceled2['total_nights'].value_counts().iloc[:10].index, ax=ax)
plt.show()

Сначала я попытался отсортировать df по 'total_nights'. Выход не изменился. Затем я отсортировал и сбросил индекс (это текущее состояние моего кода). Все еще без изменений.

Это то, что я получаю (точно так же, как статья): enter image description here

Обратите внимание на порядок сортировки оси x (total_nights ). Я хочу 1, 2, 3, 4, 5 и т. Д. c., А не 1, 3, 2, 4, 7 и т. Д. c.

1 Ответ

0 голосов
/ 26 апреля 2020

Просто разобрался. Пришлось удалить .value_counts из параметра заказа.

enter image description here

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