使用Python绘制QQ图并分析数据

使用Python绘制QQ图并分析数据

在这篇博客中,我们将探讨如何使用Python中的pandas库和matplotlib库来绘制QQ图(Quantile-Quantile Plot),并分析数据文件中的内容。QQ图是一种常用的统计图表,用于检查一组数据是否服从某种理论分布(如正态分布)。
在这里插入图片描述

数据:

链接:https://pan.baidu.com/s/1ug1bRyoIcMwJg9Bx_1DU3A?pwd=1234
提取码:1234

代码示例

以下是一个完整的代码示例,展示了如何读取数据文件并绘制QQ图:

import pandas as pd
import pylab as plt
from scipy.stats import norm, probplot

# 读取数据文件
df = pd.read_csv('data9_5.txt', header=None)

# 提取甲班成绩
d = df.values[0]

# 计算均值和标准差
mu = d.mean()
s = d.std()
sd = sorted(d)
n = len(d)

# 计算分位数
x = (plt.arange(n) + 1 / 2) / n
yi = norm.ppf(x, mu, s)

# 设置字体和大小
plt.rc('font', size=16)
plt.rc('font', family='SimHei')
plt.rc('axes', unicode_minus=False)

# 绘制QQ图
plt.subplot(121)
plt.plot(yi, sd, 'o', label='QQ图')
plt.plot(sd, sd, label='参照直线')
plt.legend()

# 使用probplot绘制QQ图
plt.subplot(122)
probplot(d, plot=plt)

# 显示图像
plt.show()
代码解释
  1. 导入库

    import pandas as pd
    import pylab as plt
    from scipy.stats import norm, probplot
    

    我们导入了pandas库来处理数据,pylab作为绘图工具,以及scipy.stats中的normprobplot函数来进行统计分析。

  2. 读取数据文件

    df = pd.read_csv('data9_5.txt', header=None)
    

    我们使用pandasread_csv函数读取数据文件data9_5.txt,并将其存储在数据框df中。由于文件没有列标题,我们使用header=None参数。

  3. 提取甲班成绩

    d = df.values[0]
    

    我们提取数据框的第一行(即甲班)的成绩数据。

  4. 计算均值和标准差

    mu = d.mean()
    s = d.std()
    sd = sorted(d)
    n = len(d)
    

    我们计算数据的均值mu和标准差s,并对数据进行排序sd,获取数据的长度n

  5. 计算分位数

    x = (plt.arange(n) + 1 / 2) / n
    yi = norm.ppf(x, mu, s)
    

    我们计算数据的分位数x,并使用norm.ppf函数计算理论分布的分位数yi

  6. 设置字体和大小

    plt.rc('font', size=16)
    plt.rc('font', family='SimHei')
    plt.rc('axes', unicode_minus=False)
    

    我们使用rc函数设置字体为SimHei(黑体),并将字体大小设置为16,以确保图表中的中文标签能够正确显示。

  7. 绘制QQ图

    plt.subplot(121)
    plt.plot(yi, sd, 'o', label='QQ图')
    plt.plot(sd, sd, label='参照直线')
    plt.legend()
    

    在第一个子图中,我们绘制了QQ图,使用圆点表示实际数据的分位数,并使用参照直线表示理论分布的分位数。

  8. 使用probplot绘制QQ图

    plt.subplot(122)
    probplot(d, plot=plt)
    

    在第二个子图中,我们使用probplot函数绘制QQ图,进一步验证数据是否服从正态分布。

  9. 显示图像

    plt.show()
    

    最后,我们使用show函数显示绘制的QQ图。

QQ图的意义

QQ图(Quantile-Quantile Plot)用于比较数据的分位数与理论分布的分位数。如果数据点接近参照直线,则说明数据服从该理论分布。在本例中,我们检查了甲班成绩是否服从正态分布。

总结

通过这篇博客,我们学习了如何使用Python读取数据文件并绘制QQ图。我们使用了pandas库来处理数据,并使用matplotlib库和scipy.stats库绘制了QQ图。这些图表可以帮助我们更好地理解数据的分布情况及其与理论分布的吻合程度。

希望这篇博客对你有所帮助!如果你有任何问题或建议,欢迎在评论区留言。谢谢阅读!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/786651.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

A股探底回升,2900点强势支撑,3000点还会远吗?

今天的A股探底回升,姿势绝了!具体原因是这样的,盘面上出现2个重要变化,一起来看看: 1、今天两市低开高走,一度回踩2904点,然后筑底反弹,究竟是昙花一现还是迎来大反击? …

深度学习-数学基础(四)

深度学习数学基础 数学基础线性代数-标量和向量线性代数-向量运算向量加和向量内积向量夹角余弦值 线性代数-矩阵矩阵加法矩阵乘法矩阵点乘矩阵计算的其他内容 人工智能-矩阵的操作矩阵转置(transpose)矩阵与向量的转化 线性代数-张量(tensor…

1001-04SF 同轴连接器

型号简介 1001-04SF是Southwest Microwave的2.92 mm连接器。该连接器采用多种材料制成,包括不锈钢、黄铜和硅橡胶等,以确保其性能和耐用性。它可以帮助工程师和制造商进行设计和制造,并确保连接器的性能和质量。 型号特点 电缆螺母&#xff…

【中项第三版】系统集成项目管理工程师 | 第 4 章 信息系统架构④ | 4.7

前言 第4章对应的内容选择题和案例分析都会进行考查,这一章节属于技术相关的内容,学习要以教材为准。本章分值预计在4-5分。 目录 4.7 安全架构 4.7.1 安全威胁 4.7.2 定义与范围 4.7.3 整体架构设计 4.7.4 网络安全架构设计 4.7.5 数据库系统安…

【Python基础】代码如何打包成exe可执行文件

本文收录于 《一起学Python趣味编程》专栏,从零基础开始,分享一些Python编程知识,欢迎关注,谢谢! 文章目录 一、前言二、安装PyInstaller三、使用PyInstaller打包四、验证打包是否成功五、总结 一、前言 本文介绍如何…

西安电子科技大学811/821/833/834/953小班(8人)授课上线

你还在为自己努力,而成绩上不去而烦恼嘛?来看看下面这个小班介绍,或许你会感兴趣! 01、西电研梦现在开设一个8人小班,什么是8人小班授课呢? 小班采用82授课机制;其中8人指:8位考研…

活动回顾|2024 MongoDB Developer Day圆满收官!

上周六,MongoDB专家与团队在深圳 与90位开发者度过了充实一日 至此,2024 MongoDB Developer Day 北上深三站之行全部圆满结束! 一文回顾本次活动全程与精彩影像! MongoDB Developer Day 专为开发者定制的技术盛宴 全天沉浸动手实…

【LabVIEW学习篇 - 5】:数据类型——数值、字符串

文章目录 数值枚举下拉列表控件 字符串字符串与十六进制截取字符串连接字符串 字符串与数值间的转换字符串转为数值数值转为字符串 数值 如下图所示,各种数值型数据的不同之处在于存储和表示数据时所使用的位置不同。 浮点型 整型 在LabVIEW中,想要改…

pointnet2_ops_lib/.安装报错解决方案

问题 3D点云相关的代码例如pointnn、pointmlp都需要安装pointnet2_ops,可是基本上在安装pointnet2_ops时总会报错,终归原因是虚拟环境的cuda版本和安装的torch,torchvision, torchaudio版本不一致导致。 方案 这里以pointmlp&am…

原来Kimi不是不作为,而是在准备大招!

月之暗面Kimi 作为一款我每天都在使用的AI智能助手,是真正的帮助我解决了不少工作及日常创作的一些事情。 它的表现能力也是毋庸置疑,不论是业内还是普通人,10个人当中可能就有9个人在使用Kimi。 而昨天(7月8日)Kimi…

探索AI大模型(LLM)减少幻觉的三种策略

大型语言模型(LLM)在生成文本方面具有令人瞩目的能力,但在面对陌生概念和查询时,它们有时会输出看似合理却实际错误的信息,这种现象被称为“幻觉”。近期的研究发现,通过策略性微调和情境学习、检索增强等方…

SpringBoot个人博客系统(开发中)

闲来无事,做个博客玩玩 代码仓库:gitee

【CPP】CPP的命名空间输入输出缺省参数函数重载

目录 1 命名空间 -- namespace2 CPP的输入与输出(io)2.1 输入输出流的一些规定2.2 实操一下2.3 关于endl2.4 关于精度控制2.5 效率提高 3 缺省参数(默认参数)3.1 样例3.2 全缺省与半缺省3.3 缺省参数的意义 4 函数重载4.1 函数重载的基本使用4.2 函数重载调用歧义 这里是oldkin…

v-model双向绑定的实现原理

在前端处理表单时&#xff0c;我们常常需要将表单输入框的内容同步给 JavaScript 中相应的变量。手动连接值绑定和更改事件监听器可能会很麻烦&#xff0c;这里我们先用input属性写入输入框&#xff0c;代码如下&#xff1a; <template><view class"out"&g…

java中 使用数组实现需求小案例(二)

Date: 2024.07.09 16:43:47 author: lijianzhan 需求实现&#xff1a; 设计一个java类&#xff0c;java方法&#xff0c;使用Random函数&#xff0c;根据实现用户输入随机数生成一个打乱的数组。 package com.lin.java.test;import java.util.Arrays; import java.util.Rando…

透明加密软件核心技术分享|十款好用的透明加密软件分享

透明加密软件的核心技术在于其能够自动、实时地对文件进行加密和解密&#xff0c;而这个过程对最终用户来说是无感的。这种技术在不改变用户操作习惯的前提下&#xff0c;增强了数据的安全性。下面是透明加密软件的一些核心技术要点。 实时加密与解密&#xff1a;软件在文件被打…

两名程序员与一名运维人员历经整整一天的时间,成功解决了 nacos 登录时出现“ERR CONNECTION RESET,用户名或密码错误”这一棘手问题

上图看页面报错 这是网页应用提示的信息&#xff0c;服务器日志没有明显的错误日志&#xff0c;检查了账号密码是正常的。 再上第二张图 把这个信息发到百度上查找 通过上图的信息大概知道网络层的原因&#xff0c;可能是在网络安全方面被重置了 下面我们就验证下 1、在服务…

《操作系统真象还原》学习笔记:第1章 部署工作环境

**提示&#xff1a;**这篇文章是根据学长提供的教程《操作系统真象还原》第一章 部署工作环境来完成的&#xff0c;我按照学长给的教程一步一步做下来&#xff0c;再结合《操作系统真象还原》这本书&#xff0c;对实验环境进行了配置。以下是我按照教程进行搭建的记录&#xff…

saas lims系统:适合中小检测机构的实验室管理系统

目前市面上的LIMS系统分为两种&#xff1a;一种是传统的LIMS系统&#xff0c;一次性买断&#xff0c;配置服务器&#xff0c;成本相对来说是比较高的。还有一种就是以白码LIMS云平台为代表的&#xff0c;基于SaaS模式的LIMS系统。白码LIMS系统提供saas模式购买&#xff0c;帮助…

Labview_压缩文件

调用顺序 源文件 生成后的文件 1.新建ZIP文件 生成ZIP文件的路径&#xff1a;为最终生成ZIP文件的路径&#xff0c;需要提供ZIP文件的名称和类型 2.添加文件到压缩文件 源文件路径&#xff1a;为需要压缩的文件路径&#xff0c;非文件夹路径 生成ZIP文件时的路径&#x…