Python 熊猫在同一条形图上用不同变量绘制多个df

Python 熊猫在同一条形图上用不同变量绘制多个df,python,pandas,dataframe,matplotlib,Python,Pandas,Dataframe,Matplotlib,我有4个不同位置的数据帧:印度尼西亚、新加坡、马来西亚,每个数据帧的总数都包含了5大创收产品的百分比。我已经分别绘制了它们 我想将它们结合在一个图上,其中X轴显示不同的位置和每个位置的顶级创收产品 我有打印的数据框,你们可以看到,它们有不同的产品 打印(Ind_top_cat、Sin_top_cat、Mal_top_cat、Tot_top_cat) 多亏了joelostblom,我才得以设计出一个情节,但仍然存在一些问题。 是否有任何方法可以将图例值放在x轴上(无需为国家/地区上色,我想为国家

我有4个不同位置的数据帧:印度尼西亚、新加坡、马来西亚,每个数据帧的总数都包含了5大创收产品的百分比。我已经分别绘制了它们

我想将它们结合在一个图上,其中X轴显示不同的位置和每个位置的顶级创收产品

我有打印的数据框,你们可以看到,它们有不同的产品

打印(Ind_top_cat、Sin_top_cat、Mal_top_cat、Tot_top_cat)

多亏了joelostblom,我才得以设计出一个情节,但仍然存在一些问题。


是否有任何方法可以将图例值放在x轴上(无需为国家/地区上色,我想为国家/地区上色),并将数据值放在条形图顶部。此外,条形图没有居中,也不知道如何解决它。

您可以在每个数据框中创建一个带有国家名称的新列,例如

Ind_top_cat['Country'] = 'Indonesia'
Sin_top_cat['Country'] = 'Singapore'
您可以通过将国家/地区数据框连接在一起来创建一个大数据框:

all_countries = pd.concat([Ind_top_cat, Sin_top_cat])
最后,可以使用高级打印库(如seaborn)为x轴位置指定一列,为条形图的颜色指定一列:

import seaborn as sns

sns.barplot(x='Country', y='Amt', color='Category', data=all_countries)
您可以向下滚动到上一页的第二个示例,了解这样的绘图是什么样的(也粘贴在下面):

all_countries = pd.concat([Ind_top_cat, Sin_top_cat])
import seaborn as sns

sns.barplot(x='Country', y='Amt', color='Category', data=all_countries)