如何在pandas hist命令中更改绘图的顺序

时间:2015-11-03 17:15:48

标签: python pandas matplotlib

我试图为25个名为"Feature_1","Feature_2",...."Feature_25"的列的数据框绘制一组直方图。当我使用df.hist()时,它按名称对各个直方图进行排序,以便按以下顺序绘制:"Feature_1",""Feature_10","Feature_11"..."Feature_2","Feature_20",... 这不是我需要的。

如何更改排序顺序?传递列参数不会改变任何内容。

我直接使用matplotlib解决了这个问题,但是每次我需要绘制几个直方图时,我不喜欢这样做。

2 个答案:

答案 0 :(得分:1)

您可以改为使用单个列重复调用hist。不确定这是否符合您的所有需求。

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()

答案 1 :(得分:1)

尝试将列索引分类,然后使用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)