绘制分类值的直方图
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()
我正在使用 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()