如何用熊猫绘制垂直区域图

joh*_*ase 4 python matplotlib pandas

是否有直接的方法使用熊猫绘制区域图,但是垂直定向图?

例如,水平绘制区域图我可以这样做:

import pandas as pd
import numpy as np

df = pd.DataFrame(np.random.rand(10, 4), columns=['a', 'b', 'c', 'd'])
df.plot(kind='area');
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

我可以垂直绘制条形图 'barh'

df.plot(kind='barh');
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

但我无法想出一个简单的方法来获得一个垂直的区域图

Imp*_*est 6

pandas不提供垂直堆栈图的原因是matplotlib stackplot仅用于水平堆栈.

然而,堆栈图最后只是一个填充的线图.因此,您可以通过绘制数据来获得所需的绘图fill_betweenx().

import pandas as pd
import numpy as np; np.random.rand(42)
import matplotlib.pyplot as plt

df = pd.DataFrame(np.random.rand(10, 4), columns=['a', 'b', 'c', 'd'])

fig, ax = plt.subplots()

data = np.cumsum(df.values, axis=1)
for i, col in enumerate(df.columns):
    ax.fill_betweenx(df.index, data[:,i], label=col, zorder=-i)
ax.margins(y=0)
ax.set_xlim(0, None)
ax.set_axisbelow(False)

ax.legend()


plt.show()
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述