g=sns.FacetGrid(unpaid,col="下单入口",hue="短信催款次数",sharex=True, sharey=True,col_wrap=2,palette="husl",height=6,aspect=1.5) plt.axvline(x=2, color='r', linestyle='--') plt.axvline(x=9, color='r', linestyle='--') plt.axvline(x=16, color='r', linestyle='--') g.map(plt.scatter,"逾期",'需付金额',alpha=0.7,s=30) g.add_legend()把第一张图也加上线
时间: 2024-02-02 22:05:22 浏览: 33
你可以在 `map()` 方法之前,先绘制第一张子图的垂直线。具体实现方法如下:
```python
import matplotlib.pyplot as plt
import seaborn as sns
g = sns.FacetGrid(unpaid, col="下单入口", hue="短信催款次数", sharex=True, sharey=True, col_wrap=2, palette="husl", height=6, aspect=1.5)
# 绘制第一张子图的垂直线
plt.axvline(x=2, color='r', linestyle='--')
g.map(plt.scatter, "逾期", '需付金额', alpha=0.7, s=30)
# 对其他子图绘制垂直线
g.map(sns.lineplot, "逾期", '需付金额', alpha=0.7, s=30)
g.map(lambda **kwargs: plt.axvline(x=9, color='r', linestyle='--'), "下单入口")
g.map(lambda **kwargs: plt.axvline(x=16, color='r', linestyle='--'), "下单入口")
g.add_legend()
```
在这个例子中,我们先使用 `plt.axvline()` 函数绘制了第一张子图的垂直线。然后,在 `map()` 方法中使用 `sns.lineplot()` 函数绘制了其他子图的散点图,并使用 lambda 函数在指定的列中绘制垂直线。最后,我们调用 `add_legend()` 方法添加图例。