刘运晨� 2019-09-01 21:24 采纳率: 0%
浏览 480

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()
  • 写回答

1条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2022-09-09 18:28
    关注
    不知道你这个问题是否已经解决, 如果还没有解决的话:

    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 以帮助更多的人 ^-^
    评论

报告相同问题?

悬赏问题

  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!
  • ¥15 drone 推送镜像时候 purge: true 推送完毕后没有删除对应的镜像,手动拷贝到服务器执行结果正确在样才能让指令自动执行成功删除对应镜像,如何解决?