import seaborn as sns
import matplotlib.pyplot as plt
dfw = sns.load_dataset("penguins", cache=False)[['bill_length_mm', 'bill_depth_mm']].dropna()
dfl = dfw.melt(var_name='bill_size', value_name='vals')
seaborn.displot
- 忽略
'sharex': False
,但 'sharey'
可用
- 忽略
bins
fg = sns.displot(data=dfl, x='vals', col='bill_size', kde=True, stat='density', bins=12, height=4, facet_kws={'sharey': False, 'sharex': False})
plt.show()
![enter image description here](https://istack.dev59.com/4vJKp.webp)
设置xlim
没有任何影响。
fg = sns.displot(data=dfl, x='vals', col='bill_size', kde=True, stat='density', bins=12, height=4, facet_kws={'sharey': False, 'sharex': False})
axes = fg.axes.ravel()
axes[0].set_xlim(25, 65)
axes[1].set_xlim(13, 26)
plt.show()
![enter image description here](https://istack.dev59.com/XKabZ.webp)
seaborn.histplot
fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(8, 4))
sns.histplot(data=dfw.bill_length_mm, kde=True, stat='density', bins=12, ax=ax1)
sns.histplot(data=dfw.bill_depth_mm, kde=True, stat='density', bins=12, ax=ax2)
fig.tight_layout()
plt.show()
![enter image description here](https://istack.dev59.com/f6Sdt.webp)
更新
- 根据mwaskom的建议,使用
common_bins=False
可以使直方图形状相同,解决了忽略bins
和sharex
的问题。然而,在displot
中的密度会受到绘图数量的影响。
- 如果在
displot
中有3个图,则密度是histplot
中显示密度的1/3;对于2个图,则密度为1/2。
![enter image description here](https://istack.dev59.com/oZu9p.webp)
![enter image description here](https://istack.dev59.com/v8jfF.webp)