Jul*_*iaz 3 python histogram seaborn displot
我正在使用seaborn 的displot 来获取堆积条形图。这是我的代码:
g = sns.displot(data=df, x='collection_year', hue='WB_Income group', multiple='stack',col="ena_species",col_wrap=6,facet_kws={'sharey': False, 'sharex': False})
Run Code Online (Sandbox Code Playgroud)
如何增加条形的宽度?
discrete=True或设置bins=以匹配 中唯一值的数量来解决此问题'year',这会导致 x 刻度仅对应于传递到独立轴的值。python 3.10, pandas 1.4.3, matplotlib 3.5.1,seaborn 0.11.2import pandas as pd
import numpy as np
import seaborn as sns
# create sample data
np.random.seed(2022)
rows = 10000
data = {'year': np.random.choice(list(range(1985, 2025)), size=rows),
'income': np.random.choice(['high', 'upper middle', 'lower middle', 'low'], size=rows),
'species': np.random.choice(list(string.ascii_lowercase[:14]), size=rows)}
df = pd.DataFrame(data)
# display(df.head())
year income species
0 2013 upper middle m
1 2009 lower middle g
2 2003 lower middle h
3 2009 upper middle g
4 2001 lower middle m
Run Code Online (Sandbox Code Playgroud)
bins=160,该设置是 1985 - 2025 年数的 4 倍。'year'在OP中不明显的东西。g = sns.displot(data=df, x='year', hue='income', multiple='stack', col="species", col_wrap=6, bins=160, facet_kws={'sharey': False, 'sharex': False})
Run Code Online (Sandbox Code Playgroud)
bins匹配数据中的年数来解决该问题。g = sns.displot(data=df, x='year', hue='income', multiple='stack', col="species", col_wrap=6, bins=40, facet_kws={'sharey': False, 'sharex': False})
Run Code Online (Sandbox Code Playgroud)
bins该问题也可以通过删除和设置来解决discrete=True。g = sns.displot(data=df, x='year', hue='income', multiple='stack', col="species", col_wrap=6, discrete=True, facet_kws={'sharey': False, 'sharex': False})
Run Code Online (Sandbox Code Playgroud)
bins为小于唯一值数量的数字'year'将生成一个直方图,其中每个条形包含多个年份。g = sns.displot(data=df, x='year', hue='income', multiple='stack', col="species", col_wrap=6, bins=20, facet_kws={'sharey': False, 'sharex': False})
Run Code Online (Sandbox Code Playgroud)