【Seaborn 学习笔记】P2. FacetGrid 的整体调整与布局控制 📅 2026/7/25 8:11:00 一些绘图函数如 relplot() 返回的不是一个 Axes而是一个 FacetGrid无法使用 Axes 的方法来调整需要用到 FacetGrid 的调整方式FacetGrid 的结构g sns.relplot(...) # 返回一个 FacetGrid 对象赋给 g有如下属性g.figFigure 对象整张画布g.axesAxes 数组二维 ndarrayshape (n_row, n_col)若仅使用 col、无 row则shape (1, n_col)若使用 col_wrap则 g.axes 为扁平的一维 ndarray需通过 g.axes.flat[索引] 或 list(g.axes.flat)[索引] 访问子图g.legendLegend 对象若存在FacetGrid 常用调整方法1. 设置轴标签 g.set_axis_labelsg.set_axis_labels(x轴标签名, y轴标签名)同时作用于所有子图2. 设置子图标题 g.set_titlesg.set_titles({row_name} | {col_name})其中 {row_name} 与 {col_name} 为占位符分别为 row 与 col 指定的特征在当前子图对应的取值字符串其余内容可以任意修改3. 设置总标题 g.fig.suptitleg.fig.suptitle(总标题, y1.02)设置 y1.02 避免与子图标题重叠4. 图例 g.legendg.legend.set_title(图例标题) # 设置图例的标题 g.legend.set_bbox_to_anchor((1.02, 0.5)) # 对齐坐标右侧中部 g.legend.loc center left # 图例左边框中部用于与对齐坐标对齐配合 g.tight_layout 使用5. 布局收紧 g.tight_layoutg.tight_layout()通常不需要 rect 参数若图例外置后仍被裁剪可改用 plt.tight_layout(rect...)6. 访问单个子图 g.axes[行, 列]ax g.axes[行, 列]将 [行, 列] 索引的子图赋给 ax之后可按 ax 的方法单独对该子图进行调整例如有使用col_wrap 时访问第一个子图ax g.axes.flat[0]