我想在Matplotlib堆栈图中明确设置堆栈的顺序。这是一个示例:
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
%matplotlib inline
np.random.seed(1)
df = pd.DataFrame(np.random.randint(0,100,size=(100,4)),columns=list('ABCD'))
df.plot(kind='area',stacked=True,figsize=(20,10));
这将产生以下图像:
数据框的最后一行来自:
df.tail(1)
是:
A B C D
99 16 30 84 57
这是我要实现的目标:
我想对堆栈图进行重新排序,以使堆栈从下至上按A,B,D,C的顺序绘制,即列从下至上按其在最后一次递增值的顺序排列df的行。
到目前为止,我已经尝试在绘制之前明确地对df中的列进行重新排序:
df[['A','B','D','C']].plot(kind='area',stacked=True,figsize=(20,10))
但这会产生与上面完全相同的图表。
谢谢您的帮助!