как заказать сложенный бар с использованием плотнина - PullRequest
0 голосов
/ 04 октября 2018

У меня есть следующее dataframe

import pandas as pd
from plotnine import *

df = pd.DataFrame({
    'variable': ['gender', 'gender', 'age', 'age', 'age', 'income', 'income', 'income', 'income'],
    'category': ['Female', 'Male', '1-24', '25-54', '55+', 'Lo', 'Lo-Med', 'Med', 'High'],
    'value': [60, 40, 50, 30, 20, 10, 25, 25, 40],
})
df['variable'] = pd.Categorical(df['variable'], categories=['gender', 'age', 'income'])

И я использую следующий код для получения графика столбчатых столбцов

(ggplot(df, aes(x='variable', y='value', fill='category'))
 + geom_col()
)

Приведенный выше код был взят из здесь

Как изменить порядок в каждой из категорий.Например, я хочу, чтобы age 1-24 находился внизу age с накоплением

1 Ответ

0 голосов
/ 24 октября 2018

Вы можете указать, какой порядок столбцов будет складываться, используя функцию pd.Categorical с ordered=True.Этот атрибут гарантирует, что порядок категорий будет сохранен так, как вы хотите во время процесса черчения:

# Categories are shown in a top-down order, 
# so you must reverse 'ages' order to be shown in bottom-up fashion
cat_order = ['Female', 'Male', '55+', '25-54', '1-24', 'Lo', 'Lo-Med', 'Med', 'High']

df['category'] = pd.Categorical(df['category'], categories=cat_order, ordered=True)
...