python统计分析——单变量数据统计作图

参考资料:python统计分析-托马斯

1、导入库和数据准备

# 导入库
# 用于数值处理的库
import numpy as np
import pandas as pd
import scipy as sp
from scipy import stats
# 用于绘图的库
import matplotlib.pyplot as plt
import seaborn as sns
sns.set()

# 数据准备
x=np.random.randn(500)

2、散点图

        这是单变量数据最简单的展示方法,只要绘制出每个单独的点即可。相应的绘图命令如下:

# 实现代码一
plt.plot(x,'.')

# 实现代码二
plt.scatter(np.arange(len(x)),x)

        注意:如果出现x轴只有少数离散值的情况(比如,第一组、第二组和第三组),那么将重叠的数据点稍微分散开(也叫作“增加抖动”)将会有助于展示每个数据点

3、直方图

        直方图提供了数据分布的一个很好的概览。如果除以总的数据点个数,便可得到相对频率直方图;如果只是将每个区间的顶部中点连起来,我们会得到一个相对频率的多边形。

plt.hist(x,bins=25)

直方图的绘制可参考:

python统计分析——直方图(sns.histplot)_sns.histplot函数-CSDN博客

python统计分析——直方图(plt.hist)-CSDN博客

4、核密度(kde)估计图

        直方图有一个缺点,它是非连续的,并且它的形状严格取决于区间的宽度。为了活的平滑的概率密度,也就是描述一个事件在给定区间内被发现的可能性,我们可以使用核密度估计的方法。因此,正态分布被用作典型的核。核函数的宽度决定了平滑的程度。为了了解这是如何运作的,我们用下列6个数据点来构建直方图和核密度估计:

x=[-2.1,-1.3,-0.4,1.9,5.1,6.2]

        对于直方图来说,首先水平轴被分割为覆盖数据范围的小区间。下图中,我们有6个宽度为2的区间。当有一个数据点落在某个区间内时,我们放一高度为1/12的箱子。如果不止一个数据点落入一个区间,我们就把箱子逐个堆起来。

       对于核密度估计来说,我们对每一个数据点x,都放置一个方差为2.25的正态分布核。将核加起来形成核密度的估计。和离散的直方图相比较,核密度估计明显更加平滑。

        核密度估计能够更快地收敛至潜在的连续型随机变量的密度。 作图代码可写为

sns.kdeplot(x)

        核的窗宽h是一个决定我们在多大程度上来平滑掉每个事件的贡献的参数。在特定条件下,h的最佳选择可以认为是:

h=(\frac{4\hat{\sigma}^5}{3n})^{\frac{1}{5}}\approx 1.06 \hat{\sigma}n^{-1/5}

其中,\hat{\sigma}是样本的标准偏差(西尔弗曼的经验法则)

5、累计频率

        累计频率曲线表示的是低于某一特定值的数据的数量(或百分比)。该曲线对统计分析非常有帮助,比如当我们想知道包含所有值的95%的数据范围时。累计频率在比较两组或多组个体的值的分布情况时也非常有用。

        当使用百分比点位的时候,累计频率还有个额外的好处,就是它有界:

0\leqslant cumfreq(x)\leqslant 1

x=np.random.randn(500)
plt.rcParams['font.family']='SimHei'   # 用于设置图片正常显示中文
plt.plot(stats.cumfreq(x)[0])
plt.ylabel('累计频率')  # 设置纵坐标轴标题
plt.xlabel('数据值')  # 设置横坐标轴标题

6、误差条图

        在比较数值的度量时,误差条图是展示均值和变异度的常用方法。值得注意的是,误差条图必须显式说明到底是标准差还是标准误。使用标准误有一个很好的特性:当基于标准误的两组误差条之间有重叠时,我们可以确定两组之间的均值没有统计学差异(p>0.05),反之则不一定成立。

index=np.arange(5)
y=index**2
errorBar=index/2  # 只是为了演示而非真实误差值
plt.errorbar(index,y,yerr=errorBar,fmt='o',capsize=5,capthick=3)

6、箱形图

        箱形图经常在学术刊物中使用,用来表示两组或多组的数值。箱子的地图和顶部分别表示第一分位数和第三分位数,而箱子内部中间的线表示中位数。值得注意的是上下须,存在着不同的习惯用法。最常见的形式是,下面的须在第一分位数外1.5×IQR(四分位距)范围内的最低值,而上面的须表示在第三分位数外1.5×IQR(四分位距)范围内的最高值;离群值(在上下须之外)被单独绘制,这也是检验离群值的一种方法。另一个习惯用法是,须表示整个数据的范围。

plt.boxplot(x,sym='*')

        箱形图可以和核密度估计图联合起来绘制,生成小提琴图,其中纵轴和箱线图一样,但在水平方向上额外绘制了对称的核密度估计图。

# 准备数据
nd=stats.norm  # nd为标准正态分布总体
data=nd.rvs(size=(100))  # 从nd中抽取100个数据

nd2=stats.norm(loc=3,scale=1.5)  # nd2为均值为3,标准差为1.5的正态分布总体
data2=nd2.rvs(size=(100))  # 从nd2中抽取100个数值

# 绘制小提琴图
plt.rcParams['axes.unicode_minus']=False  # 设置坐标轴负号正常显示
df=pd.DataFrame({
    'Girls':data,'Boys':data2
})
sns.violinplot(df)

作图参考:

python统计分析——小提琴图(sns.violinplot)-CSDN博客

python统计分析——小提琴图(plt.violinplot)_plt violin-CSDN博客

python统计分析——箱线图(df.boxplot)_df.boxplot()-CSDN博客

python统计分析——箱线图(sns.boxplot)_python sns.boxplot-CSDN博客

python统计分析——箱线图(plt.boxplot)_python 箱线图-CSDN博客

excel统计分析——正态性检验(箱线图)_excel的透视正态性检验-CSDN博客

8、分组条形图

        对于一些应用来说,pandas的绘图能力可以使得生成有用的图形更容易。

df=pd.DataFrame(np.random.rand(10,4),columns=['a','b','c','c'])
df.plot(kind='bar',grid=False)

9、饼图

txtLabels=['Cats','Dogs','Frogs','Others']
fractions=[0.45,0.30,0.15,0.10]
offsets=(0,0.05,0,0)

plt.pie(fractions,explode=offsets,labels=txtLabels,
       autopct='%1.1f%%',startangle=90,
       colors=sns.color_palette('muted'))
plt.axis('equal')

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

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

相关文章

安全特性 悬垂指针

英文名称 Dangling point,它还有一个兄弟叫 wild point - 野指针。 简单的对Dangling point做一个类比:我换手机号码了,但是没有通知老板,老板通讯录存的是我的旧号码。然后老板打电话有两种可能:打不通电话或者电话打…

OpenAI划时代大模型——文本生成视频模型Sora作品欣赏(十五)

Sora介绍 Sora是一个能以文本描述生成视频的人工智能模型,由美国人工智能研究机构OpenAI开发。 Sora这一名称源于日文“空”(そら sora),即天空之意,以示其无限的创造潜力。其背后的技术是在OpenAI的文本到图像生成模…

优化算法之最速梯度下降法、牛顿法、拟牛顿法(DFP及BFGS)

优化算法之最速梯度下降法、牛顿法、拟牛顿法 一、最速梯度下降法 我们知道常规的梯度下降法迭代法公式如下: θ ( k 1 ) θ ( k ) − η ∇ f ( θ ( k ) ) \theta^{(k1)} \theta^{(k)} - \eta\nabla f(\theta^{(k)}) θ(k1)θ(k)−η∇f(θ(k)) 迭代公式中包…

适配Ollama的前端界面Open WebUI

在前文 本地大模型运行框架Ollama 中,老苏留了个尾巴,限于篇幅只是提了一下 Open WebUI,有网友留言说自己安装没搞定,今天我们来补上 文章传送门:本地大模型运行框架Ollama 什么是 Open WebUI ? Open WebUI…

LabVIEW眼结膜微血管采集管理系统

LabVIEW眼结膜微血管采集管理系统 开发一套基于LabVIEW的全自动眼结膜微血管采集管理系统,以提高眼结膜微血管临床研究的效率。系统集成了自动化图像采集、图像质量优化和规范化数据管理等功能,有效缩短了图像采集时间,提高了图像质量&#…

运维随录实战(2)之k8s部署应用

一, 创建.gitlab-ci.yml文件 架构流程 文件内容 stages: #设置流水线模版- build # 编译- source2img- deploy # 发布variables: # 设置全局变量MAVEN_PATH: .m2MAVEM_IMAGE: maven:3.8.5-openjdk-17-slim # maven 打包使用的镜像MAVEN_CLI_OPTS: "-s $MAVEN_PATH/set…

【观点】区块链的未来:分布式商业;企业的未来:分布式商业生态战略

本文内容摘自思二勋所著的《分布式商业生态战略》一书。 近两年,商业经济环境的不确定性越来越明显,市场经济受到疫情、技术、政策等多方因素影响越来越难以预测,黑天鹅事件时有发生。在国内外经济方面,国际的地缘政治对商业经济…

基于R语言实现线性回归模型及测试应用

基于R语言实现线性回归模型及测试应用 mpgB0B1*dartE 调用R语言函数 >data(mtcars) >head(mtcars) > mod <- lm(formula mpg ~ drat, data mtcars) > summary(mod) > # 画出拟合的线 >abline(mod, col "blue") >points(mtcars$drat, mt…

【Linux命令】fuser

fuser 使用文件或文件结构识别进程。 详细 fuser命令用于报告进程使用的文件和网络套接字。fuser命令列出了本地进程的进程号&#xff0c;哪些本地进程使用file&#xff0c;参数指定的本地或远程文件。 每个进程号后面都跟随一个字母&#xff0c;该字母指示进程如何使用该文…

14-RPC-自研微服务框架

RPC RPC 框架是分布式领域核心组件&#xff0c;也是微服务的基础。 RPC &#xff08;Remote Procedure Call&#xff09;全称是远程过程调用&#xff0c;相对于本地方法调用&#xff0c;在同一内存空间可以直接通过方法栈实现调用&#xff0c;远程调用则跨了不同的服务终端&a…

智能通用平台(Intelligent General-purpose Platform)

根据2024年的最新人工智能技术发展趋势&#xff0c;我为您提出的项目需求表如下&#xff1a; 项目名称&#xff1a;智能通用平台&#xff08;Intelligent General-purpose Platform&#xff09;项目概述&#xff1a;结合最新的生成式人工智能、多模态学习和量子计算技术&#…

Redis基础---Java客户端应用

目录 一、介绍 二、Jedis的使用 三、SpringDataRedis的使用 创建&#xff1a; 一、介绍 在Redis官网&#xff0c;提供了多种编程语言的客户端&#xff0c;如Java、C等&#xff0c;官网地址&#xff1a;Clients | Redis 而对于Java的客户端有很多&#xff0c;但是用的最多的就是…

判定MySQL是否开机自启

在Linux系统中&#xff0c;判断MySQL是否设置为开机自动启动&#xff0c;可以通过以下几种方式来确认&#xff1a; 使用systemd&#xff1a; 如果你的Linux发行版使用systemd作为其初始化系统&#xff08;大多数现代Linux发行版如Ubuntu、CentOS 7&#xff09;&#xff0c;可以…

【Web前端入门学习】——HTML

目录 HTML简介HTML文件结构常用文本标签标题标签段落标签有序列表和无序列表表格标签 HTML属性a标签—超链接标签图片标签 HTML区块块元素与行内元素 HTML表单 HTML简介 HTML全称是Hypertext Markup Language超文本标记语言。 HTML的作用&#xff1a; 为网页提供结构&#xff…

自动驾驶感知面试-coding应用题

感知面试手撕代码&#xff1a;这个博主总结的很好&#xff0c;尤其是关于叉积的计算 双线性插值 双线性插值公式记忆方法和Python实现 NMS算法 #include<iostream> #include<vector> #include<algorithm>using namespace std; struct Box {int x1,x2,y1,…

【代码】Python3|无GUI环境中使用Seaborn作图的学习路线及代码(阴影折线图)

我有个需求是需要画图&#xff0c;让GPT帮我生成了一下学习计划。 学习路线依照GPT的来的&#xff0c;使用的Prompt工具是https://github.com/JushBJJ/Mr.-Ranedeer-AI-Tutor。 文章目录 PrerequisiteMain Curriculum1.1 Seaborn介绍Seaborn基础保存图形为文件练习 1.2 单变量数…

什么是Vue的服务端渲染(SSR)?它有什么作用?

Vue的服务端渲染&#xff08;SSR&#xff09;是指将Vue组件在服务器端进行渲染&#xff0c;然后将已经渲染好的页面返回给浏览器&#xff0c;相比于传统的客户端渲染&#xff0c;SSR可以更好地优化SEO和加速首屏加载速度。在传统的客户端渲染中&#xff0c;浏览器需要加载所有的…

【Spring云原生】Spring官宣,干掉原生JVM,推出 Spring Native!整体提升性能!Native镜像技术在Spring中的应用

&#x1f389;&#x1f389;欢迎光临&#x1f389;&#x1f389; &#x1f3c5;我是苏泽&#xff0c;一位对技术充满热情的探索者和分享者。&#x1f680;&#x1f680; &#x1f31f;特别推荐给大家我的最新专栏《Spring 狂野之旅&#xff1a;从入门到入魔》 &#x1f680; 本…

Linux——MySQL主从复制与读写分离

实验环境 虚拟机 3台 centos7.9 网卡NAT模式 数量 1 组件包mysql-5.6.36.tar.gz cmake-2.8.6.tar.gz 设备 IP 备注 Centos01 192.168.223.123 Amoeba Centos02 192.168.223.124 Master Centos03 192.168.223.125 Slave MySQL安装 主从同时操作 安装所需要的…

【探索AI】二十二 深度学习之第5周:生成对抗网络(GAN)

生成对抗网络&#xff08;GAN&#xff09; GAN的基本原理与结构常见的GAN模型&#xff08;如DCGAN、StyleGAN等&#xff09;图像生成与风格迁移任务实践&#xff1a;使用GAN进行图像生成或风格迁移任务 GAN的基本原理与结构 生成对抗网络&#xff08;GAN&#xff09;的基本原理…