如何使用Python画QQ图

本文介绍了如何使用Python通过statsmodels库创建QQ图,展示了正态分布数据与均匀分布数据的区别,帮助读者理解数据是否符合正态分布。通过正太分布和均匀分布的实例,直观展示QQ图在数据分布检验中的应用。
摘要由CSDN通过智能技术生成

QQ图,全称quantile-quantile plot,又称为分位图。通常用于判断一组数据是否服从某种理论分布,大多数情况用于判断是否服从正太分布。尽管Q-Q图不是正式的统计检验,但它提供了一种直观、简单方法来检查数据集是否为正态分布的。本文介绍如何使用Python创建QQ图。

正太分布数据示例

首先准备100个示例数据:

import numpy as np

# 创建100个服从正太分布的数据集
np.random.seed(0)
data = np.random.normal(0,1, 1000)

# 查看前10个数据
data[:10] 

array([ 1.76405235,  0.40015721,  0.97873798,  2.2408932 ,  1.86755799,
       -0.97727788,  0.95008842, -0.15135721, -0.10321885,  0.4105985 ])

我们可以使用statsmodels包中qqplot函数创建QQ图:

import statsmodels.api as sm
import matplotlib.pyplot as plt

# 创建 Q-Q 图,并增加 45度线
fig = sm.qqplot(data, line='45')
plt.show()

在这里插入图片描述

QQ图的X轴现实理论分位数,这意味着显示不是实际数据,而是实际数据在正态分布下的位置。Y轴显示实际数据。这意味着如果数据值沿45度角的大致直线下降,那么数据分布服从正态分布。

我们可以看到上面的Q-Q图中数据值倾向于接近45度直线,这意味着数据可能是正态分布的。这并不奇怪,因为我们用numpy.random.normal()函数生成的100个数据值。

均匀分布数据示例

下面创建均匀分布数据集,然后利用该数据画QQ进行对比:

# 创建 100 均匀分布数据集
data = np.random.uniform(0,1, 1000)

# 画QQ图
fig = sm.qqplot(data, line='45')
plt.show()

在这里插入图片描述

显然图中显示数据不遵循红色的45度线,这表明它们不服从正态分布。

你可以使用Python的matplotlib库来一个折线。首先,你需要新建一个Python项目,并导入matplotlib库。然后,你可以使用plot()函数来绘制折线,通过传入x轴和y轴的数据来确定折线的形状。在每次调用plot()函数时,使用label参数给折线添加标签,以便在例中展示。最后,使用legend()函数显示例,使用xticks()函数设置x轴的刻度和标签,使用xlabel()和ylabel()函数设置x轴和y轴的标签。最后,使用show()函数显示像。 下面是一个示例代码: ```python import matplotlib.pyplot as plt names = \['1', '2', '3', '4', '5', '6'\] x = range(len(names)) y_1 = \[2, 3, 4, 5, 6, 1\] y_2 = \[3, 4, 5, 6, 1, 2\] y_3 = \[4, 5, 6, 1, 2, 3\] plt.plot(x, y_1, color='orangered', marker='o', linestyle='-', label='A') plt.plot(x, y_2, color='blueviolet', marker='D', linestyle='-.', label='B') plt.plot(x, y_3, color='green', marker='*', linestyle=':', label='C') plt.legend() plt.xticks(x, names, rotation=45) plt.xlabel("X轴坐标") plt.ylabel("Y轴坐标") plt.show() ``` 这段代码会生成一个折线,其中x轴的刻度为1到6,y轴的值分别为y_1、y_2和y_3。每条折线都有不同的颜色、标记和线型,并在例中显示对应的标签。x轴和y轴都有相应的标签。 希望这个例子能帮到你! #### 引用[.reference_title] - *1* [python多条折线(简介)](https://blog.csdn.net/qq_42532598/article/details/112424755)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [Python matplotlib绘制折线](https://blog.csdn.net/weixin_43790276/article/details/109191533)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值