在python中从更多不同的数据帧绘制一个堆叠条

在python中从更多不同的数据帧绘制一个堆叠条,python,pandas,dataframe,plot,Python,Pandas,Dataframe,Plot,我需要这样绘制数据: df1 id value ba1 4 ba2 5 ba3 5 df2 id value ba1, ba3 4 ba2 3 ba2, ba3 2 ba3 5 df3 id value ba1, ba3 3 ba1, ba3, ba4 1 ba2 3 ba2, ba3 2 ba3 4 ba3, ba4 1 每个df都有

我需要这样绘制数据:

df1
id  value
ba1  4 
ba2  5
ba3  5

df2
   id     value
ba1, ba3  4
ba2       3
ba2, ba3  2
ba3       5

df3
     id       value
ba1, ba3       3
ba1, ba3, ba4  1
ba2            3
ba2, ba3       2
ba3            4
ba3, ba4       1
每个df都有相同的值之和14。我认为这是一个很好的解决方案,每个df有一个条形图,其中的值以百分比表示。 但我不知道如何从三个不同的数据帧中执行。我在那里找到的所有东西都是针对一个df中的数值更大的列。 欢迎任何帮助。提前谢谢

所需的输出如下:
但在X中是dataframe的名称,类似的东西应该可以工作:

import pandas as pd
import matplotlib.pyplot as plt


df1 = {'id': ['ba1', 'ba2', 'ba3'], 'value': [4,5,5]}
df1 = pd.DataFrame(data=df1)
df1.set_index('id', inplace=True)

df2 = {'id': ['ba1, ba3', 'ba2', 'ba2, ba3', 'ba3'], 'value': [4,3,2,5]}
df2 = pd.DataFrame(data=df2)
df2.set_index('id', inplace=True)

df3 = {'id': ['ba1, ba3', 'ba1, ba3, ba4', 'ba2', 'ba2, ba3', 'ba3', 'ba3,\
ba4'], 'value': [3,1,3,2,4,1]}
df3 = pd.DataFrame(data=df3)
df3.set_index('id', inplace=True)

ax = plt.gca()
df1.T.plot(kind='bar', stacked=True, ax=ax, width=0.05, position=0)
df2.T.plot(kind='bar', stacked=True, ax=ax, width=0.05, position=1)
df3.T.plot(kind='bar', stacked=True, ax=ax, width=0.05, position=2)
plt.show()