Seaborn 条形图条之间没有空格 [英] No whitespace between Seaborn barplot bars

查看:40
本文介绍了Seaborn 条形图条之间没有空格的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我使用下面的代码创建了一个 Seaborn 条形图(它来自

解决方案

无论如何都不是 matplotlib 专家,所以可能有更好的方法来做到这一点.也许您可以执行以下操作,类似于

I created a Seaborn barplot using the code below (it comes from https://www.machinelearningplus.com/plots/top-50-matplotlib-visualizations-the-master-plots-python/)

I would like all the bars to stack up without whitespace, but have been unable to do so. If I add width it complains about multiple values for width in barh. This is probably as seaborn has its own algo to determine the width. Is there anyway around it?

import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns

# Read data
df = pd.read_csv("https://raw.githubusercontent.com/selva86/datasets/master/email_campaign_funnel.csv")

# Draw Plot
plt.figure(figsize=(13, 10), dpi=80)
group_col = 'Gender'
order_of_bars = df.Stage.unique()[::-1]
colors = [plt.cm.Spectral(i/float(len(df[group_col].unique())-1)) for i in
          range(len(df[group_col].unique()))]

for c, group in zip(colors, df[group_col].unique()):
    sns.barplot(x='Users', y='Stage', data=df.loc[df[group_col]==group, :],
                order=order_of_bars, color=c, label=group)

# Decorations    
plt.xlabel("$Users$")
plt.ylabel("Stage of Purchase")
plt.yticks(fontsize=12)
plt.title("Population Pyramid of the Marketing Funnel", fontsize=22)
plt.legend()
plt.show()

解决方案

Not a matplotlib expert by any means, so there may be a better way to do this. Perhaps you can do something like the following, which is similar to the approach in this answer:

# Draw Plot
fig, ax = plt.subplots(figsize=(13, 10), dpi=80)
...

for c, group in zip(colors, df[group_col].unique()):
    sns.barplot(x='Users', y='Stage', data=df.loc[df[group_col]==group, :],
                order=order_of_bars, color=c, label=group, ax=ax)

# Adjust height    
for patch in ax.patches:
    current_height = patch.get_height()
    patch.set_height(1)
    patch.set_y(patch.get_y() + current_height - 1)

这篇关于Seaborn 条形图条之间没有空格的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆