使用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图。这些图表可以帮助我们更好地理解数据的分布情况及其与理论分布的吻合程度。

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

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C# 下sendmessage和postmessage的区别详解与示例

文章目录 1、SendMessage2、PostMessage3、两者的区别: 总结 在C#中,SendMessage和PostMessage是两个用于Windows编程的API,它们用于向窗口发送消息。这两个方法都位于System.Windows.Forms命名空间中,通常用于自动化Windows应用程…

科普文:分布式系统的架构设计模式

一、分布式架构基本概念 分布式架构是一种计算机系统设计方法,它将一个复杂的系统划分为多个自治的组件或节点,并通过网络进行通信和协作。每个组件或节点在功能上可以相互独立,但又能够通过消息传递或共享数据来实现协同工作。分布式架构主要…

值传递与引用传递:深入理解Java中的变量赋值和参数传递机制

在Java中,理解值传递(值拷贝)与引用传递(地址拷贝)之间的区别对于正确处理数据结构和对象至关重要。本文将通过示例代码深入探讨这两种机制,并解释它们如何影响程序的行为。 值传递(值拷贝&…

虚拟机因断电进入./#状态解决办法

现象: 解决:先查看错误日志:journalctl -p err -b查看自己虚拟机中标黄部分的名字 之后运行:xfs_repair -v -L /dev/sda #这里sda用你自己标黄的 最后重启 reboot 即可。

在Linux上运行macOS:深度解析OSX-KVM项目

在Linux上运行macOS:深度解析OSX-KVM项目 在现代开发和测试环境中,能够在不同操作系统之间无缝切换是至关重要的。对于开发者而言,如何在Linux系统上运行macOS一直是一个挑战。然而,OSX-KVM项目为我们提供了一种高效的解决方案&a…

R包:ggsci期刊配色

介绍 不同期刊配色大多数时候不一样,为了更好符合期刊图片颜色的配色,有人开发了ggsci这个R包。它提供以下函数: scale_color_palname() scale_fill_palname() 对应不同期刊的color和fill函数。 导入数据R包 library("ggsci")…

2024年全面导入APS系统:提升工厂生产效率的策略

在快速变化的市场环境中,急单、插单、订单设计变更、订单交期变更、订单取消、供应链移动等问题已经是制造业时时刻刻都在面对的问题,在订单量下降的市场环境下,企业本身的业务工作反而越来越忙碌。在此背景下,当今制造业企业亟需…

【pytorch24】Visdom可视化

TensorboardX pytorch有一个工具借鉴了tensorboard pip install tensorboardX 有查看变量的数值、监听曲线等功能 如何使用 新建SummaryWriter()实例 要把监听的数据,比如说要监听dummy_s1[0](y 坐标)存放到data/scalar1中,…

【React】React18 Hooks 之 useContext

目录 useContext1、Provider和 useContext2、Provider 和Consumer3、Provider 嵌套4、React.createContext提供的Provider和class的contextType属性5、读、写Context(1)父组件修改Context(2)子组件修改Context 好书推荐 useContex…

NPDP有什么价值?究竟值不值得去考?

NPDP其实就是产品经理国际资格认证,是美国产品开发管理协会发起的,集理论、方法和实践一体,在新产品开发方面有一个很全面的知识体系。是国际公认的新产品开发专业认证,具有权威性。 NPDP能够很好地帮你在做新产品的道路上少走弯…

【已解决】腾讯云安装了redis,但是本地访问不到,连接不上

汇总了我踩过的所有问题。 查看配置文件redis.conf 1、把bind 127.0.0.1给注释掉(前面加个#就是)或者改成bind 0.0.0.0,因为刚下载时它是默认只让本地访问。(linux查找文档里的内容可以输入/后面加需要匹配的内容,然后…

clickhouse-jdbc-bridge rce

clickhouse-jdbc-bridge 是什么 JDBC bridge for ClickHouse. It acts as a stateless proxy passing queries from ClickHouse to external datasources. With this extension, you can run distributed query on ClickHouse across multiple datasources in real time, whic…

Java基础-组件及事件处理(上)

(创作不易,感谢有你,你的支持,就是我前行的最大动力,如果看完对你有帮助,请留下您的足迹) 目录 Swing 概述 MVC 架构 Swing 特点 控件 SWING UI 元素 JFrame SWING 容器 说明 常用方法 示例&a…

服务器信息获取工具

功能介绍 SSH连接到远程服务器: 用户可以输入目标服务器的IP地址、用户名、密码以及SSH端口(默认22)。 工具会尝试连接到远程服务器,并在连接失败时显示错误信息。 运行命令并返回输出: 工具可以在远程服务器上运…

python (必看)10个提升接口自动化编写效率的脚本!

亲爱的开发者们,👋 在快速迭代的软件开发周期中,接口自动化测试扮演着至关重要的角色。今天,我们将分享10个实用的Python小脚本,它们能够显著提升你编写接口自动化测试的效率。无论是初学者还是资深工程师,…

算法体系-26 第二十六节:第26节:单调栈结构 (5节)

一 单调栈知识讲解 1.1描述 一个数组里面想的到每个位置与他最近的左边和右边比他小的最近的信息 1.2 分析 通过单调栈的特点,for遍历数组中的每个数,当前数来的时候对比单调栈中的数进行每个数的左右判断完满足条件的进行更新到当前i种的 int[][] re…

采用3种稀疏降噪模型对心电信号进行降噪(Matlab R2021B)

心电信号采集自病人体表,是一种无创性的检测手段。因此,心电信号采集过程中,本身也已经包含了机体内部其他生命活动带来的噪声。同时,由于采集设备和环境中存在电流的变化,产生电磁发射等物理现象,会对心电…

学习测试7-ADB的使用

ADB是什么? ADB,即 Android Debug Bridge(安卓调试桥) 是一种允许模拟器或已连接的 Android 设备进行通信的命令行工具,它可为各种设备操作提供便利,如安装和调试应用,并提供对 Unix shell&…

最新全国1-5级标准河流水系矢量数据

2023最新全国一级~五级标准河流水系 shp 矢量数据 2023最新全国一级~五级标准河流水系 shp 矢量数据 Arcgis 五级河流水系全国合集和按省区分 坐标系:wgs84 更新年份:2023年 包含20230SM提取全国超详细水体 Arcgis 矢量数据&a…

TIA博途与威纶通触摸屏无实物仿真调试的具体方法示例

TIA博途与威纶通触摸屏无实物仿真调试的具体方法示例 准备条件: TIA PORTAL V16 S7-PLCSIM V16 EasyBuilderPro V6.9.1 NetToPLCsim V1.2.5 如有需要,可以在这个链接中下载 NetToPLCSim - Browse Files at SourceForge.net538 weekly downloads3 weekly downloads12 weekly d…