python 绘制q-q图代码

python 绘制q-q图代码

今天,我们附上一份python绘制q-q图的代码
简单介绍一下思路
1.首先,我们需要对我们绘制的两份数据排序,然后,用散点图绘制在图例上
2.之后,绘制散点拟合曲线,下面代码结果图下:
q-q图的原理也很重要:数据中一串数目的每个点都是该数据的某分位点,把这些点的(称为样本分位数点)和相应的理论上的分位数配对做出散点图,如果该数据服从正态分布,那么该图看上去应该像一条直线,否则就不服从正态分布。
在这里插入图片描述

import numpy as np
import matplotlib.pyplot as plt

def linear_regression(x, y):
  N = len(x)
  sumx = sum(x)
  sumy = sum(y)
  sumx2 = sum(x ** 2)
  sumxy = sum(x * y)
  A = np.mat([[N, sumx], [sumx, sumx2]])
  b = np.array([sumy, sumxy])
  return np.linalg.solve(A, b)
x=np.array([23,23,27,27,39,41,47,49,50,52,54,54,56,57,58,58,60,61])

y=np.array([9.5,26.5,7.8,17.8,31.4,25.9,27.4,27.2,31.2,34.6,42.5,28.8,33.4,30.2,34.1,32.9,41.2,35.7])  # 9个数据
a0, a1 = linear_regression(x, y)
y_s=y.copy()
y_s.sort()

y2 = [a0 + a1 * x for x in x]

fig=plt.figure(figsize=(6,6))
plt.xlabel('age')
plt.ylabel('%fat')
plt.scatter(x, y_s,label='qq_plot')
#plt.plot([40,65],[25,38])#该条曲线应该通过拟合来画
plt.plot( x, y2)
#plt.tick_params(axis='both',which='major',labelsize=14)

plt.show()
  • 5
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值