Python 逆时针而不是顺时针取消堆叠多索引数据帧
我有一个多索引数据框,看起来像这样:Python 逆时针而不是顺时针取消堆叠多索引数据帧,python,pandas,matplotlib,Python,Pandas,Matplotlib,我有一个多索引数据框,看起来像这样: Number of Vulnerabilities Name Severity moderate 2167 Person 1 high 1421 critical 2464 moderate 5841 Person 2 high 3687 critical 10267
Number of Vulnerabilities
Name Severity
moderate 2167
Person 1 high 1421
critical 2464
moderate 5841
Person 2 high 3687
critical 10267
我的目标是创建一个水平堆叠条形图,其中的条形图表示严重程度,从左到右的顺序为:中等、高、严重。为了得到一个堆叠的条形图,我似乎需要取消堆叠严重性指数列。当我尝试这样做时,df.unstack('Severity')
,我的数据帧如下所示:
Number of Vulnerabilities
Severity critical high moderate
Name
Person 1 2464 1421 2167
Person 2 10267 3687 5841
因此,当我去绘制它时,堆叠的条按顺序排列(L->R):临界、高、中等。我如何将“严重性”指数的顺序更改为:中等、高、严重?或者,是否有方法在打印时更改顺序,从而无需对数据帧进行进一步操作?
我当前的绘图代码是,
df.plot(kind='barh',stacked=True)
您可以对列重新排序
df = df.unstack('Severity') # This is your current dataframe
df = df['Number of Vulnerabilities'][['moderate', 'high', 'critical']] # reoder
df.plot(kind='barh', stacked=True) #plot
真管用!但是,“漏洞数量”列名称已消失。有没有办法让它在重新订购过程中保持不变?