r语言 plot_R语言直方图绘制hist(),plot()

bf03cdf2d4f693a6c696283bc124e5be.png

直方图绘制hist()

素娥

2020/9/27

本文我们要用iris数据集进行直方图的绘制

本文主要使用hist、plot函数进行绘制图片

首先还是观察数据类型

data<-iris
library(knitr)
tt<-head(data,15)
kable(tt)

Sepal.LengthSepal.WidthPetal.LengthPetal.WidthSpecies
5.13.51.40.2setosa
4.93.01.40.2setosa
4.73.21.30.2setosa
4.63.11.50.2setosa
5.03.61.40.2setosa
5.43.91.70.4setosa
4.63.41.40.3setosa
5.03.41.50.2setosa
4.42.91.40.2setosa
4.93.11.50.1setosa
5.43.71.50.2setosa
4.83.41.60.2setosa
4.83.01.40.1setosa
4.33.01.10.1setosa
5.84.01.20.2setosa

简单的直方图

相关参数

1.x:要画图的数据

2.breaks:数据分多少组

3.freq:若为T(默认)则绘制频数分布直方图,为F则绘制频率分布直方图

4.probability:与freq相反

我们绘制iris的叶片宽度的直方图

绘制分12组的频数分布直方图

hist(x=data$Sepal.Width,breaks = 12)

098e1c3c718b2b251ab28945e00f8aa1.png

绘制分12组的频率分布直方图

x<-hist(x=data$Sepal.Width,breaks = 12,freq = F)

82f5b1f2445186869faaf00abbdd51f6.png

注意,此处的纵坐标是频率/组距

再叠加一条密度曲线。

hist(x=data$Sepal.Width,breaks = 12,freq = F)
lines(density(data$Sepal.Width))

fe11e73097514b74e9fda43e92f34863.png

#美化图像(图形颜色,打斜线等)

###相关参数

1.density :阴影线密度

2.angle:阴影线倾角

3.col:填充颜色

4.border:直方图边缘颜色

在第一幅图的基础上进行美化

先加斜线

hist(x=data$Sepal.Width,breaks = 12,density = 10,angle = 45)

a2df3659097abb7167430929b967e338.png

在加上颜色和边框

hist(x=data$Sepal.Width,breaks = 12,density = 10,angle = 45,col = "red",
border = "blue")

bdcc3a976abbc39f10794cd955f572b9.png

不加斜线,直接写颜色

hist(x=data$Sepal.Width,breaks = 12,col = "red",
border = "blue")

cfb1514b9ee6bc6ff3e7d7d397da438e.png

美化图像(坐标轴,标题,标签)

相关参数

1.main, xlab, ylab :标题,x名称,y名称

2.xlim, ylim :x轴,y轴范围

3.axes:逻辑值,是否画坐标轴

4.labels:是否添加标签

先加上标题,x名称,y名称

hist(x=data$Sepal.Width,breaks = 12,main="直方图",xlab="叶片宽度",
ylab="频数")

d99d7131f880ca6f651b437b529ea4ba.png

设置x,y轴的范围

hist(x=data$Sepal.Width,breaks = 12,main="直方图",xlab="叶片宽度",
ylab="频数",xlim=c(2,4.5),ylim=c(0,40))

f1015df5ae8b938453e87f80e51b3f7b.png

加上数据标签

hist(x=data$Sepal.Width,breaks = 12,main="直方图",xlab="叶片宽度",
ylab="频数",xlim=c(2,4.5),ylim=c(0,40),labels=T)

e50306e5daf071bf89310363018594f4.png

去掉坐标轴

hist(x=data$Sepal.Width,breaks = 12,main="直方图",axes=F,labels=T)

e17baa649aeac5ca1315f29028362866.png

参数plot

是否画出图像

hh<-hist(x=data$Sepal.Width,breaks = 12,plot=F)
hh

## $breaks
## [1] 2.0 2.2 2.4 2.6 2.8 3.0 3.2 3.4 3.6 3.8 4.0 4.2 4.4
##
## $counts
## [1] 4 7 13 23 36 24 18 10 9 3 2 1
##
## $density
## [1] 0.13333333 0.23333333 0.43333333 0.76666667 1.20000000 0.80000000
## [7] 0.60000000 0.33333333 0.30000000 0.10000000 0.06666667 0.03333333
##
## $mids
## [1] 2.1 2.3 2.5 2.7 2.9 3.1 3.3 3.5 3.7 3.9 4.1 4.3
##
## $xname
## [1] "data$Sepal.Width"
##
## $equidist
## [1] TRUE
##
## attr(,"class")
## [1] "histogram"

hh展示的是直方图的相关值

间隔,频数,频率/组距,组中值等

接着用plot函数就可以继续绘制

hh<-hist(x=data$Sepal.Width,breaks = 12,plot=F)
plot(hh,col=rgb(0.7,0.2,0.2,alpha=0.5),border = "white",
main="直方图",xlab="叶片宽度",
ylab="频数",xlim=c(2,4.5),ylim=c(0,40),labels=T,
)

5a7886944772844613f14d2fc391fde6.png

再往上加一条密度图

plot(hh,
freq=F,col=rgb(0.7,0.2,0.2,alpha=0.5),border = "white",
main="直方图",xlab="叶片宽度",
ylab="频数",xlim=c(2,4.5),ylim=c(0,1.5),labels=T,
)
lines(density(data$Sepal.Width),lwd=2,col=rgb(0.1,0.5,0.2))

125cfee715fe26e32d49c067fe887753.png
  • 1
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值