Pandas 熊猫中两个数据帧的瀑布图

Pandas 熊猫中两个数据帧的瀑布图,pandas,dataframe,waterfall,Pandas,Dataframe,Waterfall,我有两个数据帧,它们的行和列完全相同。 df1显示模式的百分比百分比: pt car bike walk Equilibrium 28.80 36.82 3.55 30.83 No information 28.80 36.82 3.55 30.83 start 28.82 36.83 3.55 30.80 Equilibrium2

我有两个数据帧,它们的行和列完全相同。 df1显示模式的百分比百分比:

                    pt      car     bike    walk
Equilibrium         28.80   36.82   3.55    30.83
No information      28.80   36.82   3.55    30.83
start               28.82   36.83   3.55    30.80
Equilibrium2        28.51   36.95   3.56    30.98
df2是行程时间(分钟)

我希望有这样一个图表,x轴显示模式百分比(df1),Y轴显示每个列名的行程时间(df2),例如:

让我们试着用底部绘制条形图:

colors = [f'C{i}' for i in range(4)]
fig, axes = plt.subplots(2,2, figsize=(8,8))

for idx, ax in zip(df1.index, axes.ravel()):
    s1, s2 = df1.loc[idx].cumsum(),df2.loc[idx].cumsum()
    ax.bar(s1.shift(fill_value=0),df2.loc[idx],width=df1.loc[idx],
            bottom=s2.shift(fill_value=0), align='edge', color=colors)
    ax.set_title(idx)        

fig.tight_layout()
输出:


让我们试着用底部绘制条形图:

colors = [f'C{i}' for i in range(4)]
fig, axes = plt.subplots(2,2, figsize=(8,8))

for idx, ax in zip(df1.index, axes.ravel()):
    s1, s2 = df1.loc[idx].cumsum(),df2.loc[idx].cumsum()
    ax.bar(s1.shift(fill_value=0),df2.loc[idx],width=df1.loc[idx],
            bottom=s2.shift(fill_value=0), align='edge', color=colors)
    ax.set_title(idx)        

fig.tight_layout()
输出:


谢谢,您是否也可以在方框内添加每个轴的值请参见更新以了解颜色。有些框太小,无法放入任何文本。我看到了,不错,水平线和垂直线呢?这有助于理解确切的数量文件“”,第1行颜色=[f'C{i}表示范围(4)]^SyntaxError:invalid syntaxIt是有效的python 3语法。我猜您正在使用Python 2。请根据您的喜好定义颜色。谢谢,您还可以在方框内添加每个轴的值吗?请参阅颜色更新。有些框太小,无法放入任何文本。我看到了,不错,水平线和垂直线呢?这有助于理解确切的数量文件“”,第1行颜色=[f'C{i}表示范围(4)]^SyntaxError:invalid syntaxIt是有效的python 3语法。我猜您正在使用Python 2。请根据您的喜好定义颜色。