seaborn使用多个displot让它们在一张图上呈现
时间: 2024-04-08 17:31:10 浏览: 172
要在一张图上同时呈现多个 displot,可以使用 seaborn 的 `FacetGrid` 函数。`FacetGrid` 可以根据一个或多个变量的不同取值创建多个子图,并将它们组合在一起。
下面是一个示例代码,演示如何使用 `FacetGrid` 在一张图上呈现多个 displot:
```python
import seaborn as sns
import matplotlib.pyplot as plt
# 创建一个 FacetGrid 对象
g = sns.FacetGrid(data, col="category", height=4, aspect=1.2)
# 在每个子图上绘制 displot
g.map(sns.histplot, "column_name", kde=True)
# 设置整体图的标题
g.fig.suptitle("Multiple Displots")
# 调整子图之间的间距
g.tight_layout()
# 显示图形
plt.show()
```
在示例中,`data` 是包含数据的 DataFrame,"category" 是一个变量,表示不同的子图组。"column_name" 是要在每个子图上绘制 displot 的列名。`height` 和 `aspect` 参数用于控制子图的大小和纵横比。
通过调用 `g.map()` 方法,可以在每个子图上绘制 displot。这里使用了 `sns.histplot` 函数来绘制直方图,并设置 `kde=True` 来添加核密度估计曲线。
最后,使用 `g.fig.suptitle()` 设置整体图的标题,`g.tight_layout()` 调整子图之间的间距,然后调用 `plt.show()` 显示图形。
你可以根据你的数据和需求修改示例代码中的参数,以实现你想要的效果。
阅读全文