頻率直方圖是資料統計中經常會用到的圖形展示方式,同時在生物學分析中可以更好的展示表型性狀的資料分佈型別;R基礎做圖中的hist函式對單一資料的展示很方便,但是當遇到多組資料的時候就不如ggplot2繪製來的方便。
***
1.基礎做圖hist函式
hist(rnorm(200),col="blue",border="yellow",main="",xlab="")
1.1 多圖展示
par(mfrow=c(2,3))
for (i in 1:6) {hist(rnorm(200),border="yellow",col="blue",main="",xlab="")}
1
2.ggplot2繪製
構造一組正態分佈的資料
PH<-data.frame(rnorm(300,75,5))
names(PH)<-c("PH")
#顯示資料
head(PH)
## PH
## 1 72.64837
## 2 67.10888
## 3 89.34927
## 4 75.70969
## 6 82.85354
2
3
4
5
6
7
8
9
10
11
載入ggplot2作圖包並繪圖
library(ggplot2)
library(gridExtra)
p1<-ggplot(data=PH,aes(PH))
geom_histogram(color="white",fill="gray60") #控制顏色
ylab(label = "total number") #修改Y軸標籤
2.1 修改柱子之間的距離
p2<-ggplot(data=PH,aes(PH))
geom_histogram(color="white",fill="gray60",binwidth = 3)
2.2 新增擬合曲線
p3<-ggplot(data=PH,aes(PH,..density..))
geom_line(stat="density")
2.3 修改線條的粗細
p4<-ggplot(data=PH,aes(PH,..density..))
geom_line(stat="density",size=1.5)
grid.arrange(p1,p2,p3,p4)
2.4 繪製密度曲線
p1<-ggplot(data=PH,aes(PH,..density..))
geom_density(size=1.5)
2.5 修改線條樣式
p2<-ggplot(data=PH,aes(PH,..density..))
geom_density(size=1.5,linetype=2)
geom_density(size=1.5,linetype=5)
2.6 修改顏色
geom_density(size=1.5,linetype=2,colour="red")
2.7 多組資料展示
構造兩組資料
df<-data.frame(c(rnorm(200,5000,200),rnorm(200,5000,600)),rep(c("BJ","TJ"),each=200))
names(df)<-c("salary","city")
結果展示
p1<-ggplot()
geom_histogram(data=df,aes(salary,..density..,fill=city),color="white")
p2<-ggplot()
geom_histogram(data=df,aes(salary,..density..,fill=city),color="white",alpha=.5)
p3<-ggplot()
geom_density(data=df,aes(salary,..density..,color=city))
p4<-ggplot()
geom_histogram(data=df,aes(salary,..density..,fill=city),color="white") geom_density(data=df,aes(salary,..density..,color=city))
頻率直方圖是資料統計中經常會用到的圖形展示方式,同時在生物學分析中可以更好的展示表型性狀的資料分佈型別;R基礎做圖中的hist函式對單一資料的展示很方便,但是當遇到多組資料的時候就不如ggplot2繪製來的方便。
***
1.基礎做圖hist函式
hist(rnorm(200),col="blue",border="yellow",main="",xlab="")
1.1 多圖展示
par(mfrow=c(2,3))
for (i in 1:6) {hist(rnorm(200),border="yellow",col="blue",main="",xlab="")}
1
1
2.ggplot2繪製
構造一組正態分佈的資料
PH<-data.frame(rnorm(300,75,5))
names(PH)<-c("PH")
#顯示資料
head(PH)
## PH
## 1 72.64837
## 2 67.10888
## 3 89.34927
## 4 75.70969
## 6 82.85354
1
2
3
4
5
6
7
8
9
10
11
1
2
3
4
5
6
7
8
9
10
11
載入ggplot2作圖包並繪圖
library(ggplot2)
library(gridExtra)
p1<-ggplot(data=PH,aes(PH))
geom_histogram(color="white",fill="gray60") #控制顏色
ylab(label = "total number") #修改Y軸標籤
1
2
3
4
1
2
3
4
2.1 修改柱子之間的距離
p2<-ggplot(data=PH,aes(PH))
geom_histogram(color="white",fill="gray60",binwidth = 3)
1
1
2.2 新增擬合曲線
p3<-ggplot(data=PH,aes(PH,..density..))
geom_histogram(color="white",fill="gray60",binwidth = 3)
geom_line(stat="density")
1
2
1
2
2.3 修改線條的粗細
p4<-ggplot(data=PH,aes(PH,..density..))
geom_histogram(color="white",fill="gray60",binwidth = 3)
geom_line(stat="density",size=1.5)
grid.arrange(p1,p2,p3,p4)
1
2
3
1
2
3
2.4 繪製密度曲線
p1<-ggplot(data=PH,aes(PH,..density..))
geom_density(size=1.5)
1
1
2.5 修改線條樣式
p2<-ggplot(data=PH,aes(PH,..density..))
geom_density(size=1.5,linetype=2)
p3<-ggplot(data=PH,aes(PH,..density..))
geom_density(size=1.5,linetype=5)
1
2
3
1
2
3
2.6 修改顏色
p4<-ggplot(data=PH,aes(PH,..density..))
geom_density(size=1.5,linetype=2,colour="red")
grid.arrange(p1,p2,p3,p4)
1
2
1
2
2.7 多組資料展示
構造兩組資料
df<-data.frame(c(rnorm(200,5000,200),rnorm(200,5000,600)),rep(c("BJ","TJ"),each=200))
names(df)<-c("salary","city")
1
1
結果展示
library(ggplot2)
p1<-ggplot()
geom_histogram(data=df,aes(salary,..density..,fill=city),color="white")
p2<-ggplot()
geom_histogram(data=df,aes(salary,..density..,fill=city),color="white",alpha=.5)
p3<-ggplot()
geom_density(data=df,aes(salary,..density..,color=city))
p4<-ggplot()
geom_histogram(data=df,aes(salary,..density..,fill=city),color="white") geom_density(data=df,aes(salary,..density..,color=city))
grid.arrange(p1,p2,p3,p4)
1
2
3
4
5
6
7
8
9
1
2
3
4
5
6
7
8
9