seaborn画图为什么回归线不拟合散点分布?

根据数据绘制如图

图片说明

按照颜色深浅,回归线应该经过上方深蓝色的区域,但是并没有。改成曲线版本也是不经过上方深蓝色区域。如下图:

图片说明

求问是什么原因?如何让曲线拟合?

问题好奇怪,请教高手,非常感谢!

代码如下:

    df = pd.read_csv(src,nrows=10000, usecols=['professor_name','school_name', 'star_rating', 'diff_index'])
    pd.set_option('display.max_rows', 100, 'display.max_columns', 1000, "display.max_colwidth", 1000, 'display.width',
                  1000)
    df = df[(df['star_rating'] >= 1.0 ) & (df['diff_index'] >= 1.0)].drop_duplicates(['professor_name','school_name'], 'first', False)
    print(df.describe()) #计算平均数,标准差


    # 计算评分和难度的回归方程
    print('计算diff_index和star_rating的回归方程和R方')
    data = df[['diff_index', 'star_rating']]
    regression = stats.linregress(data)
    print("R square:", regression[2] ** 2)
    print('线性回归方程是 Y= %.3fX + %.3f,rvalue是%.3f,p-values是%s,标准误是%s' % regression)
    g = sns.set("paper",font_scale =1.3)
    g = sns.set_style("white")

    data = data.rename(index=str, columns={'diff_index': 'Difficulty Index', 'star_rating': 'Star Rating'})


    g = sns.jointplot('Difficulty Index','Star Rating', data=data,height=6,ratio=7, kind="kde", xlim=(1,5), ylim=(1.0, 5.0),space=0,palette=sns.color_palette('Blues'))
    g = sns.regplot(data['Difficulty Index'], data['Star Rating'], scatter=False, ax=g.ax_joint)

    plt.text(-20.8, 1.5, r"Y=-0.50X+5.18", fontsize=12)
    plt.text(-20.8, 1.2, r'$R^2$=0.20', fontsize=12)
    plt.show()
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问