我试图为25个名为"Feature_1","Feature_2",...."Feature_25"
的列的数据框绘制一组直方图。当我使用df.hist()
时,它按名称对各个直方图进行排序,以便按以下顺序绘制:"Feature_1",""Feature_10","Feature_11"..."Feature_2","Feature_20",...
这不是我需要的。
如何更改排序顺序?传递列参数不会改变任何内容。
我直接使用matplotlib解决了这个问题,但是每次我需要绘制几个直方图时,我不喜欢这样做。
答案 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)