首页 > 其他分享 >R语言统计分析——直方图、核密度图

R语言统计分析——直方图、核密度图

时间:2024-08-03 09:56:24浏览次数:9  
标签:mpg 统计分析 sm density mtcars hist 直方图 密度

参考资料:R语言实战【第2版】

1、直方图

        直方图通过在x轴上讲值域分割为一定数量的组,在y轴上显示相应值得频数,展示了连续型变量的分布。可以使用如下函数创建直方图:

        hist(x)

其中的x是一个由数据值组成的数值向量。参数freq=FALSE表示根据概率密度而不是频数绘制图形。参数breaks用于控制组的数量。在定义直方图中的单元时,默认将生成等距切分。

# 设置画布参数
par(mfrow=c(2,2))

# 绘制简单直方图
hist(mtcars$mpg)

# 直方图中指定组数和颜色
hist(
  mtcars$mpg,
  breaks=12,
  col="red",
  xlab="Miles Per Gallen",
  main="Colored histogram with 12 bins"
)

# 添加轴须图
hist(
  mtcars$mpg,
  freq=FALSE,
  breaks=12,
  col="red",
  xlab="Miles Per Gallen",
  main="Histogram, rug plot, density curve"
)
rug(jitter(mtcars$mpg))
lines(density(mtcars$mpg),col="blue",lwd=2)

# 添加正态密度曲线和外框
x<-mtcars$mpg
h<-hist(
  x,
  breaks=12,
  freq=FALSE,
  col="red",
  xlab="Miles Per Gallen",
  main="Histogram with normal curve and box"
)
xfit<-seq(min(x),max(x),length=40)
yfit<-dnorm(xfit,mean=mean(x),sd=sd(x))
lines(xfit,yfit,col="blue",lwd=2)
box()

2、核密度图

        和密度估计是用于估计随机变量概率密度函数的一种非参数方法,可以作为一种用来观察连续型变量分布的有效方法。绘制密度图的方法(不叠加到另一幅图上)为:

        plot(density(x))

其中的x是一个数值型向量。由于plot()函数会创建一幅新的图形,所以要向一幅已经存在的图形上叠加一条密度曲线,可以使用lines()函数。

par(mfrow=c(2,1))
d<-density(mtcars$mpg)
# 完全使用默认设置
# 创建核密度图
plot(d)
# 给核密度图进行相关设置
d<-density(mtcars$mpg)
# 添加标题
plot(d,
     main="Kernel Density of Miles Per Gallen")
# 将曲线改为蓝色,并使用实心红色
# 填充曲线下方的区域
polygon(d,col="red",border="blue")
# 添加棕色的周线图
rug(mtcars$mpg,col="brown")

        使用sm包中的sm.density.compare()函数可向图形叠加两组或更多的核密度图。使用格式为:

        sm.density.compare(x,factor)

其中的x是一个数值型向量,factor是一个分组变量。

library(sm)
attach(mtcars)
# 创建分组因子
cyl.f<-factor(cyl,levels=c(4,6,8),
              labels=c("4 cylinder","6 cylinder","8 cylinder"))
# 绘制密度图
sm.density.compare(mpg,cyl,xlab="Miles Per Gallon")
# 添加标题
title(main="MPG Distribution by Car Cylinders")
# 通过鼠标单击添加图例
colfill<-c(2:(1+length(levels(cyl.f))))
legend(locator(1),levels(cyl.f),fill=colfill)
detach(mtcars)

其中legend()函数是相同图形上添加一个图例,第一个参数locator(1)表示用鼠标点击想让图例出现的位置来交互地放置这个图例。第二个参数值则是由标签组成的字符向量。第三个参数值使用向量colfill为cyl的每一个水平指定了一种颜色。

标签:mpg,统计分析,sm,density,mtcars,hist,直方图,密度
From: https://blog.csdn.net/maizeman126/article/details/140778714

相关文章

  • 【Dash】简单的直方图
    一、VisualizingDataThePlotlygraphinglibraryhasmorethan50charttypestochoosefrom.Inthisexample,wewillmakeuseofthehistogramchart.#ImportpackagesfromdashimportDash,html,dash_table,dccimportpandasaspdimportplotly.express......
  • Python,计算HSV图像的直方图,忽略背景
    我正在尝试使用openCV计算HSV图像的直方图,使用以下代码:defistogrammaHSV(image,histSize):hsv_planes=cv2.split(image)histSize=histSizehistRange=(0,256)accumulate=Falseh_hist=np.array(cv2.calcHist(hsv_planes,[0],None,[......
  • 多元统计分析
    多元统计分析目录多元统计分析定义研究对象:多维随机变量研究内容:多元统计数据的图表示法多元统计分析的简单指标定义研究多个随机变量之间相互依赖关系以及内在统计规律性的理论和统计方法的总称。研究对象:多维随机变量研究内容:降维问题「主成分分析、因子分析......
  • 使用OpenCV拼接2d直方图 - 合并cv2.detail.MatchesInfo
    我试图将多个二维直方图(二维数据数组)拼接在一起,其中直方图的水平轴和垂直轴是空间坐标,但不同直方图的原点可能会有所不同。因此,此任务需要在识别匹配特征后进行仿射变换,为此需要稍微修改OpenCV拼接管道(https://github.com/opencv/opencv/blob/4.x/samples/python/stitch......
  • 如何向直方图添加颜色条?
    我有一个这样的直方图(就像普通的直方图一样):在我的情况下,总是有20个条形图(从0到1的x轴),并且条形图的颜色是根据x上的值定义的轴。我想要的是在直方图的底部添加一个色谱,就像http://wiki.scipy.org/Cookbook/Matplotlib/Show_colormaps中的色谱一样,但......
  • 数据分析实战 -----美国人口密度
     资源包地址链接:百度网盘请输入提取码 提取码:6666 步骤导入库importnumpyasnpimportpandasaspd首先导入文件,并查看数据样本#州的全称和州名称简写对应关系表abb=pd.read_csv('./data/state-abbrevs.csv')#州的全称和面积表areas=pd.read_csv('......
  • R语言基于表格文件的数据绘制具有多个系列的柱状图与直方图
      本文介绍基于R语言中的readxl包与ggplot2包,读取Excel表格文件数据,并绘制具有多个系列的柱状图、条形图的方法。  首先,我们配置一下所需用到的R语言readxl包与ggplot2包;其中,readxl包是用来读取Excel表格文件数据的,而ggplot2包则是用以绘制柱状图的。包的下载方法也非常简单,......
  • 【初阶数据结构】掌握二叉树遍历技巧与信息求解:深入解析四种遍历方法及树的结构与统计
    初阶数据结构相关知识点可以通过点击以下链接进行学习一起加油!时间与空间复杂度的深度剖析深入解析顺序表:探索底层逻辑深入解析单链表:探索底层逻辑深入解析带头双向循环链表:探索底层逻辑深入解析栈:探索底层逻辑深入解析队列:探索底层逻辑深入解析循环队列:探索底层逻辑......
  • Python按条件筛选、剔除表格数据并绘制剔除前后的直方图
      本文介绍基于Python语言,读取Excel表格文件数据,以其中某一列数据的值为标准,对于这一列数据处于指定范围的所有行,再用其他几列数据的数值,加以数据筛选与剔除;同时,对筛选前、后的数据分别绘制若干直方图,并将结果数据导出保存为一个新的Excel表格文件的方法。  首先,我们来明确一......
  • C语言中的数组:掌握数据的有序集合【一维数组,二维数组,字符串数组,直方图打印,计算全排列,
    目录C语言中的数组:掌握数据的有序集合【一维数组,二维数组,字符串数组】一维数组一维数组的创建数组的七种初始化完全初始化:部分初始化:字符数组的初始化:自动初始化为0:使用`memset`函数初始化:循环初始化:指定初始化器(`c99`,`gcc`)支持:一维数组的使用案例1:统计随机数的分布......