首页 > 解决方案 > 如何在熊猫中使用 crosstab .plot() 绘制图表中的轴顺序?

问题描述

这些是我使用 pandas 数据框中的 crosstab .plot() 绘制 2 线图的代码。但是,轴顺序错误,我想从周一到周日订购。我将 logData 数据帧排序为未授权访问,并将其用于交叉表。有什么办法吗?

我包括了代码、数据框和情节。

未授权访问 = logData.loc[logData['访问类型'] == '未授权'] pd.crosstab(unauthorizedAccess['日'],未授权访问['月']).plot()

logData 数据框 交叉表 .plot() 图

标签: pandasdataframe

解决方案


您可以将天的名称转换为有序的分类

unauthorizedAccess = logData.loc[logData['Access Type'] == 'Unauthorized'] 
names = ['Monday', 'Tuesday', 'Wednesday', 'Thursday','Friday', 'Saturday', 'Sunday']
unauthorizedAccess['Day'] = pd.Categorical(unauthorizedAccess['Day'],
                                           categories=names, 
                                           ordered=True)
pd.crosstab(unauthorizedAccess['Day'], unauthorizedAccess['Month']).plot()

或使用DataFrame.reindex

unauthorizedAccess = logData.loc[logData['Access Type'] == 'Unauthorized'] 
names = ['Monday', 'Tuesday', 'Wednesday', 'Thursday','Friday', 'Saturday', 'Sunday']
pd.crosstab(unauthorizedAccess['Day'], unauthorizedAccess['Month']).reindex(names).plot()

推荐阅读