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

如何在Seaborn PairGrid的对角线上添加标注?

在Seaborn PairGrid对角线上添加标注的实现方法

想要在Seaborn PairGrid的红色对角线上添加标注,尝试使用map_diag方法,以下是可行的实现方案:

实现思路

通过自定义绘图函数结合map_diag方法,在对角子图中绘制红色拟合线(或对角线)的同时添加标注,可按需调整标注的位置、内容与样式。

完整代码示例

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

def hide_current_axis(*args, **kwds):
    plt.gca().set_visible(False)

# 自定义对角绘图函数:绘制lowess拟合线并添加标注
def diag_plot(x, color, label=None):
    # 绘制与下三角风格一致的红色lowess拟合线
    sns.regplot(x=x, y=x, lowess=True, scatter=False, line_kws={"color": "red"}, ax=plt.gca())
    # 在拟合线中点位置添加标注,可根据需求调整坐标与样式
    x_mid = (x.min() + x.max()) / 2
    y_mid = x_mid
    plt.gca().text(x_mid, y_mid, "自定义标注", fontsize=12, color="darkblue", ha="center")

# 用示例数据集演示,替换为你的实际数据集即可
df = sns.load_dataset("iris")

g = sns.PairGrid(df, diag_sharey=False)
g.map_lower(sns.regplot, lowess=True, scatter_kws={"color": "black"}, line_kws={"color": "red"})
g.map_upper(hide_current_axis)
# 将自定义函数应用到对角子图
g.map_diag(diag_plot)

# 调整轴标签样式
for ax in g.axes.flatten():
    ax.set_xlabel(ax.get_xlabel(), fontsize=12)
    ax.set_ylabel(ax.get_ylabel(), fontsize=12)
    ax.yaxis.get_label().set_horizontalalignment('right')

plt.show()

代码说明

  • diag_plot函数:既保证对角子图的红色拟合线与下三角风格统一,又通过text方法添加标注。你可修改text的参数,调整标注的内容、位置、颜色和字体大小。
  • map_diag(diag_plot):将自定义绘图逻辑批量应用到所有对角子图,实现统一的标注效果。
  • 若需要标注在特定位置(比如线的起点、终点或关键数据点),可根据数据极值或目标值计算坐标后调整text的位置参数。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 23:35:14