0

我用 FacetGrid/lmplot 制作了一些回归图,并希望将回归系数、p 值等添加到每个子图中。然而,注释出现在奇怪的地方(图片),我不完全理解如何使用 lmplot 返回的轴对象,所以它只是反复试验并没有导致解决方案。阅读此https://matplotlib.org/stable/api/axes_api.html并没有澄清事情。

在此处输入图像描述

如果有人可以 1) 向我指出如何访问/操作/循环一般的子图(通过轴对象?)或 2) 如何修复我的代码以将注释放在正确的位置,我将不胜感激。

绘图代码:

import pandas as pd
import matplotlib.pyplot as plt
import numpy as np
import seaborn as sns
import matplotlib as mpl
from scipy.stats import pearsonr

T = pd.read_csv('T.csv',sep=',')
g = sns.lmplot(data=T, y='Score', x='Value', col='MPM', row='Test', y_partial='Age',
               sharex=False, sharey=False) 

r, p = stats.pearsonr(T.Value, T.Score)

for ax in g.axes.flat:
    ax.text(0, 0, "p={}, R={}".format(p,r), horizontalalignment='left', 
            verticalalignment='bottom',size='medium', color='black', weight='semibold')

当我使用这个时,情节是一样的:

g = sns.FacetGrid(data=T, col='MPM', sharex=False, sharey=False)
g.map_dataframe(sns.regplot, data=T_age, y='Score', x='Value', y_partial='Age')
            

我尝试通过在 ax.text(x, y,...) 中输入 > 0 的坐标来移动注释,但我收到错误消息“99693x1170 像素的图像尺寸太大。它必须小于 2^16 in每个方向。”

此处的示例数据:https ://github.com/TanjaS91/Example_data/tree/main

4

0 回答 0