Построение двух значений кадра данных подсчитывает проблемы с метками оси X - PullRequest
0 голосов
/ 27 мая 2018

Я рассчитываю значение для двух разных фреймов данных, но второй фрейм данных автоматически отображается с неправильными метками оси X.(См. Фото). Есть ли способ изменить порядок столбцов на каждом графике или привести все графики на рисунке в соответствие с метками оси X?Сейчас они упорядочиваются только в порядке убывания, но мне нужно, чтобы они упорядочивались по меткам оси X.

В кадре данных "df" их 158 женщин и 140 мужчин.В моем «подписанном» фрейме данных есть 13 женщин и 19 мужчин.Когда я рисую их, на графике изображены 140/13 женщин и 158/19 мужчин, тогда как на нем должны быть 158/13 женщин и 140/19 мужчин.Мне удалось использовать параметр «восходящий» в методе value_counts, чтобы изменить порядок счетчиков значений, но это решение не будет работать для моих фреймов данных с более чем двумя различными значениями.

Итоговый участок: plot

> df['Gender'].value_counts()

F    158
M    140
Name: Gender, dtype: int64

> signed['Gender'].value_counts()

M    19
F    13
Name: Gender, dtype: int64

df['Gender'].value_counts().plot('bar', position=1, width = width)
signed['Gender'].value_counts().plot('bar', color='skyblue', position=0, width = width)
width = .25
plt.show()

(см. Фото графика выше)

Ответы [ 2 ]

0 голосов
/ 27 мая 2018

Рассмотрите возможность объединения в один фрейм данных, объединив две серии по Пол индекс:

import matplotlib
matplotlib.style.use('ggplot')

...
graph_df = df['Gender'].value_counts().rename('df').to_frame()\
               .join(signed['Gender'].value_counts().rename('signed').to_frame())

graph_df.plot(kind='bar',figsize=(8, 4))

Plot Output

0 голосов
/ 27 мая 2018

Использовать sort_index () после value_counts ()

width = .25    
df['Gender'].value_counts().sort_index().plot('bar', position=1, width = width)
signed['Gender'].value_counts().sort_index().plot('bar', color='skyblue', position=0, width = width)
plt.show()
...