r语言 图形一览_R语言常见图形(1)

本文详细介绍了R语言中常见的图形类型,包括条形图、饼图、直方图、核密度图、箱线图和点图。通过实例展示了如何使用R语言的barplot()、pie()、hist()、density()、boxplot()和dotchart()等函数进行图形绘制,帮助读者理解并掌握各种图形的用途和制作方法。

本文涉及的基础图形有条形图、饼图、直方图、核密度图、箱线图、点图。

条形图

条形图通过垂直或水平的条形展示类别变量的分布(频数)。

函数barplot()

调用格式:

barplot(height)

其中,height是一个向量或一个矩阵。

适用条件

分类变量

分类

#载入包

library(vcd)

#获取分类变量数据

counts

#分类变量

counts

None Some Marked

42 14 28

使用table()函数生成分类变量。

简单条形图

如果height为一个向量,则它的值就是确定了各条形的高度。

#简单条形图

barplot(counts,main = 'Simple Bar Plot',xlab = 'Improvement',ylab = 'Fre')

#水平条形图

barplot(counts,main = 'Simple Bar Plot',xlab = 'Improvement',ylab = 'Fre',horiz = TRUE)

简单条形图

f8b1d8aafb21fe6b90ff62ebf3d2b721.png

水平条形图

9b8c9b7274b7208a618149d008ddb318.png

加入horiz=TRUE,生成水平条形图。

堆砌条形图和分组条形图

如果height是一个矩阵而不是一个向量则绘图结果将是一幅堆砌条形图或分组条形图。

参数

描述

beside

beside=FALSE(默认值),堆砌条形图。矩阵中每列的取值堆砌在同一条形上。

beside

beside=TRUE,分组条形图,矩阵中每列的取值表示一个分组。#生成数据

counts

counts

Placebo Treated

None 29 13

Some 7 7

Marked 7 21

#堆砌条形图

barplot(counts,main = 'Stacked Bar Plot',xlab = 'Treatment',ylab = 'Fre',col = c('red','yellow','green'),legend=rownames(counts))

#分组条形图

barplot(counts,main = 'Grouped Bar Plot',xlab = 'Treatment',ylab = 'Fre',col = c('red','yellow','green'),legend=rownames(counts),beside = TRUE)

堆砌条形图

069687a9c1d9b9eaf55c6145e31e8632.png

分组条形图

9570eb2111bdc80daed2068f59772704.png

均值条形图

使用数据整合函数生成相关结果,将结果传递给barplot函数,生成表示平均值、中位数、标准差等的条形图。

#生成数据框

states

#根据地区生成文盲率的平均值

means

#平均值

means

Group.1 x

1 Northeast 1.000000

2 South 1.737500

3 North Central 0.700000

4 West 1.023077

#将均值从小到大排序

means

means

Group.1 x

3 North Central 0.700000

1 Northeast 1.000000

4 West 1.023077

2 South 1.737500

#均值条形图

barplot(means$x,names.arg = means$Group.1)

#添加标题

title('地区平均文盲率')

均值条形图

a5693fbebce70de80813275f775edec1.png

棘状图

棘状图是对堆砌条形图的重缩放,这样每个条形的高度均为1,每一段的高度即表示比例。通过vcd包spine()函数绘制。

#载入包

library(vcd)

#绑定数据集

attach(Arthritis)

counts

#生成棘状图

spine(counts,main='Spinogram Example')

#解除绑定

detach(Arthritis)

棘状图

2589f22998390bcc384c80df17c25679.png

饼图

饼图以饼状图展示分类变量组成。

函数pie(x,labels)

其中,x是一个非负数值向量,表示每个扇形的面积。而labels表示各扇形标签的字符型向量。

适用条件

分类变量

示例

par(mfrow=c(2,2))

slices

lbls

pie(slices,labels = lbls,main='Simple Pie Chart')

饼图

58e0a65d290cc7b361ca26d6fb0d6926.png

直方图

直方图通过将在x轴上将值域分割为一定数量的组,在y轴上显示相应值的频数,展示连续变量的分布。

函数hist(x)

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

适用条件

连续变量

示例

hist(mtcars$mpg)

直方图

cc97710c0a832bb5e75b4b205f4b53d5.png

核密度图

核密度估计是用于估计随机变量概率密度函数的一种非参数方法。

核密度图函数

plot(density(x))

其中,x为一个数值向量。

适用条件

连续变量的分布

示例

plot(density(mtcars$mpg))

核密度图

f0574627b89767b4a27737ba6b486581.png

箱线图

箱线图通过绘制连续变量的最小值、下四分位数、中位数、上四分位数及最大值,描述连续变量的分布。

函数boxplot()

适用条件

连续变量

判断数据异常点

分类

最简单的箱线图

boxplot(mtcars$mpg,main='Box plot',ylab='Miles per Gallon')

最简单的箱线图

520645dc2ae6849cce83ebbef63b0554.png

分组箱线图

boxplot(formula,data=dataframe)

其中,formula为表达式(y~A,根据分类变量A生成连续变量y的箱线图),data为一个数据框。

参数

描述

varwidth=TRUE

将使箱线图的宽度与其样本大小的平方根成正比

horizontal=TRUE

可以反转坐标轴的方向

notch=TRUE

可以得到含凹槽的箱线图。两个箱的凹槽互不重叠,则说明它们的中位数有显著差异。boxplot(mpg~cyl,data=mtcars,main='Car Mileage Data',xlab = 'Number of Cylinders',ylab = 'Miles per Gallon')

分组箱线图

1ba71d4875d3e014339398e546a56b6a.png

小提琴图

小提琴图(violin plot)是箱线图变种。它是箱线图与核密度的结合。通过vioplot包vioplot()函数绘制。

函数vioplot(x1,x2,…,names=,col=)

其中x1,x2,…表示要绘制的一个或多个数值向量

示例

#载入包

library(vioplot)

#绑定数据集

attach(mtcars)

#生成数据

x1

x2

x3

#绘图

vioplot(x1,x2,x3,names = c('4 cyl','6 cyl', '8 cyl'),col = 'gold')

[1] 10.4 33.9

#解除绑定

detach(mtcars)

小提琴图

0b3c9c78524e1404a122c950658ea5fc.png

点图

点图提供一种在简单水平刻度上绘制大量有标签值的方法。通过dotchart()函数实现。

dotchart(x,labels=)

其中x是一个数值向量,labels是由每个点的标签组成的向量。

参数

描述

groups

选中一个分类变量,对x分组

gcolor

控制不同组标签的颜色

示例

dotchart(mtcars$mpg,labels = row.names(mtcars),cex=.7,main = 'Gas Mileage for Car Models',xlab = 'Miles per Gallon')

点图

13cbb257561bbcc36ad78b77a69df8ac.png

R语言小白速通R语言小白速通R语言小白速通

懂点R语言懂点R语言懂点R语言

欢迎分享收藏关注欢迎分享收藏关注欢迎分享收藏关注

点赞

收藏

分享

文章举报

35cc23739bc96c7d49f32a015aa81c6b.png

de638df49f1d5a3342eecff86bcb011e.png

R语言小白速通

发布了36 篇原创文章 · 获赞 12 · 访问量 2384

私信

关注

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值