R語言-直方圖


1.直方圖

直方圖和柱形圖的區別:直方圖表示頻數,柱形圖表示數量。

一般直方圖的X軸表示取值范圍,Y軸表示頻數

hist() 函數

> hist(rnorm(1000))     #1000個正態隨機數的直方圖
> hist(islands) #島嶼數據集直方圖

                                    

2.概率密度直方圖

> air<-read.csv("airpollution.csv") 
> hist(air$Nitrogen.Oxides, 
+ freq=FALSE,                          #不顯示頻數,顯示概率
+ xlab="Nitrogen Oxide Concentrations", 
+ main="Distribution of Nitrogen Oxide Concentrations") 

3.調整直方圖范圍密度

> hist(air$Nitrogen.Oxides, 
+ breaks=20,                            #設置范圍數
+ xlab="Nitrogen Oxide Concentrations", 
+ main="Distribution of Nitrogen Oxide Concentrations") 

> hist(air$Nitrogen.Oxides, 
+ breaks=c(0,100,200,300,400,500,600),   #指定范圍
+ xlab="Nitrogen Oxide Concentrations", 
+ main="Distribution of Nitrogen Oxide Concentrations") 

4.直方圖美化

①顏色美化

> hist(air$Respirable.Particles, 
+ prob=TRUE,                            #縱坐標軸顯示概率而不是頻數
+ col="black",
+ border="white", xlab="Respirable Particle Concentrations", 
+ main="Distribution of Respirable Particle Concentrations") 

②線條美化

> par(yaxs="i",las=1) 
> hist(air$Respirable.Particles, prob=TRUE,
+ col="black",border="white", 
+ xlab="Respirable Particle Concentrations", 
+ main="Distribution of Respirable Particle Concentrations") 
> box(bty="l")             #設置坐標軸樣式
> grid(nx=NA,ny=NULL,      #X軸沒有線條,Y軸自動計算線條位置
+ lty=1,lwd=1,col="gray")  #設置線條的樣式、寬度和顏色

5.標識密度函數Density()函數 

> par(yaxs="i",las=1) 
> hist(air$Respirable.Particles, 
+ prob=TRUE,col="black",border="white", 
+ xlab="Respirable Particle Concentrations", 
+ main="Distribution of Respirable Particle Concentrations") 
+ box(bty="l") 
> lines(density(air$Respirable.Particles,na.rm=T),  #density()作密度函數
+ col="red",lwd=4) 
> grid(nx=NA,ny=NULL,lty=1,lwd=1,col=" gray") 

6.散點圖+直方圖

> panel.hist <- function(x, ...) 
+ { 
+ par(usr = c(par("usr")[1:2], 0, 1.5) ) 
+ hist(x, 
+ prob=TRUE,
+ add=TRUE,col="bla ck",border="white") 
+ } 
> plot(iris[,1:4], 
+ main="Relationships between characteristics of iris flowers", 
+ pch=19,col="blue",cex=0.9, 
+ diag.panel=panel.hist)              #對角線畫直方圖

> layout(matrix(c(2,0,1,3),2,2,byrow=TRUE), 
+ widths=c(3,1), heights=c(1,3), TRUE) 
> par(mar=c(5.1,4.1,0.1,0))                     #畫散點圖
> plot(air$Respirable.Particles~air$Nitrogen.Oxides, pch=19,col="black", xlim=c(0,600),ylim=c(0,80), 
+ xlab="Nitrogen Oxides Concentrations", 
+ ylab="Respirable Particle Concentrations") 
> par(mar=c(0,4.1,3,0))                         #畫上方的直方圖
> hist(air$Nitrogen.Oxides, breaks=seq(0,600,100),
+ ann=FALSE,axes=FALSE,                         #無注釋,無坐標軸
+ col="black",border="white") 
> yhist <- hist(air$Respirable.Particles, 
+ breaks=seq(0,80,10),plot=FALSE) 
> par(mar=c(5.1,0,0.1,1))                       #畫右邊的直方圖
> barplot(yhist$density, horiz=TRUE,
+ space=0,axes=FALSE, 
+ col="black",border="white")

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM