Причина, по которой 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()