Как изменить порядок графиков в команде pandas hist

Я пытаюсь построить набор гистограмм для фрейма данных с 25 столбцами с именем "Feature_1","Feature_2",...."Feature_25". Когда я использую df.hist(), он сортирует отдельные гистограммы по их именам, поэтому они отображаются в следующем порядке: "Feature_1",""Feature_10","Feature_11"..."Feature_2","Feature_20",... который не то, что мне нужно.

Как изменить порядок сортировки? Параметр "Передача столбцов" ничего не меняет.

Я решил проблему, используя matplotlib напрямую, но это не то, что я хотел бы делать каждый раз, когда мне нужно было построить несколько гистограмм.

Ответы

Ответ 1

Вместо этого вы могли бы делать повторные вызовы для истории с отдельными столбцами. Не уверен, что это соответствует всем вашим потребностям.

import pandas as pd

df = pd.DataFrame({'a':[1,1,1,1,3],
                  'b':[1,1,2,1,3],
                  'c':[2,2,2,1,3],
                  })

df[['c']].hist()
df[['a']].hist()
df[['b']].hist()

Просто перебирайте список столбцов в том порядке, в котором вы хотели бы

my_list = ['c','a','b']
for each in my_list:
    df[[each]].hist()

Ответ 2

Попробуйте сделать категоризацию столбцов категориальным, а затем построим с помощью sort_columns True.

import pandas as pd

df = pd.DataFrame({'a':[1,2], 'b':[30,10]})
df.columns = pd.CategoricalIndex(['b', 'a'], ordered=True)
df.plot.hist(sort_columns=True, subplots=True)