R语言基本画图——最常用绘图函数速查

本文介绍了R语言中用于描述性分析的基础绘图函数,包括直方图、核密度图、饼图、条形图、箱线图、折线图和散点图的使用方法,以及如何通过这些图表来揭示数据的分布和变量间的关系。文章以二手车市场数据为例,展示了如何利用R语言进行数据可视化,以辅助理解数据和进行建模分析。
摘要由CSDN通过智能技术生成

导读
本文是描述性分析画图篇,对于记性不大好的我,每次画图的时候都会忘掉一些参数怎么设置,所以一直想有一份R画图大全,包含所有绘图函数的参数解释和详细例子。等是等不到了,只能自己动手整理一份!翻了一遍R函数文档,历时n天终于整理好了。。啾咪,这篇文章超级方便速查R语言画各种图的用法,包括箱线图散点图柱状图相关图等等所有重要图表的用法等,真的超级详细了。。

一、画图前需要明确的事

数据报告要包含研究目的、描述性分析、特征工程、建模分析、模型检验、模型对比的过程,最后需要加上最重要的结论和建议。其中数据处理的第一步就是描述性分析。关于描述性分析具体怎么写以及通过统计量进行描述的内容,我在前一篇文章已经大致梳理过,详见数据分析报告-经典统计量的描述分析。这次就重点介绍如何利用统计图表来对变量进行描述性分析。

描述性分析通常要解决的问题无非是两个,一是要描述单个变量的特征还是几个变量之间的关系?二是变量是定性变量还是定量变量?明确这两点后图表就易于确定了。

下面依旧主要用上一篇文章的数据集,来自狗熊会(公众号:CluBear)的二手市场上在售的1289条的汽车的10项指标数据,自变量包括汽车描述,排量,性能,级别,车门,车座,马力,发动机和前制动类型等10个变量定因变量为汽车的价格,处理后增加了年份变量,探究汽车价格的关键影响指标。

变量类型 变量名 详细说明 取值范围 备注
因变量 在售价格 单位:万元 1.3~280.0
自变量 描述 汽车品牌与年份及关键字 文字信息
排量 单位:升 1.3~6.2
性能 定性变量,2个水平 手动,自动 手动约占28%,自动72%
级别 定性变量,5个水平 小型,紧凑型,中型,中大型,大型 左边按照从小到大排序
车门 整数变量 2,3,4,5 存在部分数据偏差
车座 整数变量 4,5,7,8
马力 连续变量 85~575
发动机 定性变量,7个水平 L3,L4,V5,L6,V8,H4,L5 代表不同的气缸排列方式
前制动类型 定性变量,2个水平 盘式,通风盘式 制动方式,通风盘式造价较高
年份 整数变量 2004-2017

R语言自带的graphics就有很多绘图函数,如果更高级的作图还可以利用ggplot2包,这个包具体后面再说,今天先用基础函数来写画图

二、单变量绘图

1. 直方图

直方图通过将数值型的变量分为几组,显示对应组内的频数或者频率来刻画变量的分布情况。所以直方图通常用来刻画连续型变量的分布情况,并且函数可以用由hist(x)生成

hist(x, breaks = "Sturges",
     freq = NULL, probability = !freq,
     include.lowest = TRUE, right = TRUE,
     density = NULL, angle = 45, col = NULL, border = NULL,
     main = paste("Histogram of" , xname),
     xlim = range(breaks), ylim = NULL,
     xlab = xname, ylab,
     axes = TRUE, plot = TRUE, labels = FALSE,
     nclass = NULL, warn.unused = TRUE, ...)

所有的函数里面都会有很多参数可以控制调节,类似颜色字体x轴y轴范围等参数都是相通的,所以这边列出hist函数里面最关键的几个参数:

  • freq:TRUE表示y轴为频数,FALSE时表示显示频率,当且仅当间隔是等距的(且未指定概率)时,默认值为TRUE,所以平时还是设定一下freq的值比较好
  • breaks:控制划分的间隔 ,可以指定以哪些节点作为断点划分区间,可以是给出直方图单元格之间的断点,或给出分组组数,比如breaks=12,指定分12组,比如breaks=seq(0,10,by=1)是指定间隔为0、1、2…10

马上用我们二手车数据的价格举例说明如何绘制直方图:

#par函数可以将几张图放在一张纸上,下面表示一行两列
par(mfrow=c(1,2))
hist(价格,
     breaks = c(0,10,20,30,40,50,60,70,80,100,300),
     xlim=c(0,100),
     freq=TRUE,
     main='价格直方图',
     xlab = '汽车价格',
     ylab = '频数',
     col = 'lightblue')
     
hist(log(价格),
     main='对数价格直方图',
     xlab = '对数价格',
     ylab = '频数',
     col = 'lightblue')

在这里插入图片描述
直方图可以很好地看出汽车价格的整体分布是右偏的,大部分集中在低价分段,这类明显符合长尾分布的变量可以考虑取对数后观察是否符合正态分布,后续的建模也可以用对数价格去代替价格

2. 核密度图

核密度估计是用来估计变量的概率密度的一种办法,对应就是核密度图,听着很高大上,其实就是把直方图的组数增加到无穷大以后得到的图,可以相对准确地刻画分布,很多时候核密度图和直方图无需同时展示,根据实际情况挑选,两者表达的是一个意思。

density(x, bw = "nrd0", adjust = 1,
        kernel = c("gaussian", "epanechnikov", "rectangular",
                   "triangular", "biweight",
                   "cosine", "optcosine"),
        weights = NULL, window = kernel, width,
        give.Rkern = FALSE,
        n = 512, from, to, cut = 3, na.rm = FALSE, ...)
  • kernel:表示用于估计的核函数,一般选择高斯函数
#核密度图
#核密度图
par(mfrow=c(1,2))
hist(log(价格),
     main='对数价格直方图',
     xlab = '对数价格',
     ylab = '频数',
     col = 'lightblue')
plot(density(log(价格)),
     main='对数价格核密度图',
     )

比较直方图和密度图可以看到整体趋势是一样的,密度图相当于对直方图做很细的划分得到的,整体上看对数价格的密度函数和正态分布还是很相似的
在这里插入图片描述

3. 饼图

饼图常用来比较定性变量中不同类型的占比,面积越大对应比例就越高,但是从某种意义上不推荐使用饼图,因为人们对于面积的感知是比较迟钝的,有时也可以考虑用环形图或者是条形图来代替饼图的功能。plotrix包中还有画3d饼图的函数,但是这种饼图就比较花里胡哨 ,没有必要去使用。一个简单的二维饼图为pie函数

pie(x, labels = names(x), edges = 200, radius = 0.8,
    clockwise = FALSE, init.angle = if(clockwise) 90 else 0,
    density = NULL, angle = 45, col = NULL, border = NULL,
    lty = NULL, main = NULL, ...)

一般我们直接调用函数就可以了,由于x表示每个扇形的面积,所以对于定性变量我们需要利用table函数先汇总再画图

par(mfrow=c(1,2))
pie(table(级别),main='车型占比饼图')
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值