【发布时间】:2020-11-14 04:47:37
【问题描述】:
我有以下简单的示例数据框:
import pandas as pd
data = [['Alex',25],['Bob',34],['Sofia',26],["Claire",35]]
df = pd.DataFrame(data,columns=['Name','Age'])
df["sex"]=["male","male","female","female"]
我使用以下代码绘制条形图:
import matplotlib.pyplot as plt
import seaborn as sns
age_plot=sns.barplot(data=df,x="Name",y="Age", hue="sex",dodge=False)
age_plot.get_legend().remove()
plt.setp(age_plot.get_xticklabels(), rotation=90)
plt.ylim(0,40)
age_plot.tick_params(labelsize=14)
age_plot.set_ylabel("Age",fontsize=15)
age_plot.set_xlabel("",fontsize=1)
plt.tight_layout()
产生以下条形图:
我的问题:如何控制条之间的空白?我想在男性(蓝色)和女性(橙色)条之间留一些额外的空白。
输出应如下所示(在MS PPT 中编辑不佳):
我为 matplotplib(例如 https://python-graph-gallery.com/5-control-width-and-space-in-barplots/)找到了几个关于此的主题,但对于 seaborn 却没有。我更喜欢使用seaborn,因为hue 的着色功能很简单。
谢谢。
【问题讨论】: