绘制分类值的直方图

Plotting histogram for categorical values

我正在使用 seaborn,我只想绘制分类值(性别、吸烟者、日期、时间、大小)和分面直方图(同一位置共有 5 个直方图)。

    import seaborn as sns
    tips = sns.load_dataset("tips")
    tips
    
    # Plotting
    g = sns.FacetGrid(tips, col="sex",  row="smoker")
    g.map_dataframe(sns.histplot, x="time")

我尝试使用这行代码,但这并没有给我预期的结果。那么有人可以帮我解决这个问题吗?

或许您可以通过 matplotlib 创建子图并用直方图填充它们?

import matplotlib.pyplot as plt
from matplotlib.ticker import MultipleLocator
import seaborn as sns

tips = sns.load_dataset("tips")
columns = ['sex', 'smoker', 'day', 'time', 'size']
sns.set()
fig, axs = plt.subplots(ncols=len(columns), figsize=(15, 5))
for ax, column in zip(axs, columns):
    sns.histplot(tips[column], discrete=True, ax=ax)
    ax.xaxis.set_major_locator(MultipleLocator(1))  # set ticks at each position
    if ax != axs[0]:
        ax.set_ylabel('')
plt.tight_layout()
plt.show()