You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何增大Seaborn relplot绘制图表的标题字体大小

问题原因

你遇到报错、参数不生效的核心原因有两个:

  1. sns.relplot返回的是FacetGrid对象,不是普通matplotlib的Axes对象,它没有单数形式的set_title方法,因此直接调用会报属性错误。
  2. FacetGrid.set()方法仅支持配置坐标轴标签、刻度、网格这类坐标轴级属性,不支持传入标题字体相关参数,因此直接加font_size不会生效。
正确解决方法

使用FacetGrid自带的复数形式方法set_titles()即可设置标题及对应字体大小,针对无分面的单散点图场景完全适配,还可以额外调整间距避免标题和绘图内容重叠,修改后的完整代码如下:

import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt

def plot_all_seaborn(x,y,types,x_axis, y_axis, title):
    tuples = only_floats(x,y,types)
    x,y,types_new = zip(*tuples)
    frame = pd.DataFrame({x_axis:x,y_axis:y,'Model':types_new})
    g = sns.relplot(data=frame,
                x=x_axis, 
                y=y_axis, 
                hue="Model", 
                style="Model",
                s=500
                )
    # 设置标题和字体大小
    g.set_titles(title, fontsize=20)
    # 可选:调整顶部边距,避免大字号标题和图例/绘图区重叠
    g.fig.subplots_adjust(top=0.9)
    plt.show()

如果是没有分面的单图场景,也可以直接取FacetGrid下的坐标轴对象,用matplotlib原生方法设置标题:

# 单图场景下取第一个(也是唯一一个)坐标轴设置标题
g.axes[0][0].set_title(title, fontsize=20)

注意:如果是多列/多行分面的relplot,set_titles()方法会自动给所有子图设置对应标题,比逐轴设置效率更高。

内容的提问来源于stack exchange,提问作者Emil

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.30 07:54:32