避免在Seaborn条形图上堆叠两个系列

时间:2018-11-28 05:47:14

标签: python matplotlib seaborn

我有两个数据框,其中包含一个名为Code的类别和该代码的使用率Percentage,并按降序排列。我想在条形图上为两个数据框绘制前10个类别。

我想为两个系列构建一个相互平行的条形图,而不是堆叠的条形图。我能够在同一轴上构建条形图,但问题是它们已堆叠在一起。

我正在使用以下代码:

sns.set_style('darkgrid')
data = processed_cc.iloc[:10,:][['Code','Percentage']]
data1 = processed_no_cc.iloc[:10,:][['Code','Percentage']]
pal = sns.color_palette('BuGn', len(data))
pal1 = sns.color_palette('Blues', len(data1))
rank = data['Percentage'].rank(ascending=False).reset_index(drop=True)
rank = rank.argsort().argsort()
rank1 = data1['Percentage'].rank(ascending=False).reset_index(drop=True)
rank1 = rank1.argsort().argsort()
fig = plt.figure(figsize=(30,10))
sns.barplot(x="Code", y="Percentage", data = data, 
                order=data['Code'], palette = np.array(pal[::-1])[rank])
sns.barplot(x="Code", y="Percentage", data = data1, 
                order=data['Code'], palette = np.array(pal1[::-1])[rank1])
fig.suptitle('Card', fontsize=25)
plt.xticks(fontsize=20, rotation=90)
plt.yticks(fontsize=20)
plt.xlabel("Code", fontsize=18)
plt.ylabel("Percentage Usage (Code)", fontsize=18)

我无法弄清楚如何使同一地块上的两个串联条彼此平行而不是堆叠。

0 个答案:

没有答案