如何繪製精美的瀑布圖
瀑布圖是一種用於展示擁有相同的X軸變數資料、不同的Y軸離散型變數和Z軸數值變數的專業繪圖,它可以清晰地展示不同樣本對同一差異蛋白的變化關係。
備註:X軸變數資料(如不同的指標)、不同的Y軸離散型變數(不同樣本相對含量)
需要用到的R包
ggplot2
繪圖用R包
RColorBrewer
包含大量專業繪圖色,繪製多樣本圖的基礎
reshape2
用於整理資料的R包
繪圖步驟
載入R包
library(ggplot2)
library(RColorBrewer)
library(reshape2)
匯入資料
檔案命名為Waterfall_Data。csv
data<-read。csv(“Waterfall_data。csv”,stringsAsFactors=FALSE)
整理資料
colnames(data)<-c(“X_Axis”,seq(60,25,-5))
plotdata<-melt(data,id。vars = “X_Axis”)
繪製瀑布圖
ggplot(plotdata,aes(X_Axis,value,fill=variable))+geom_area(color=“black”,size=0。25)+facet_grid(variable~。)+theme(text=element_text(size=15,face=“plain”,color=“black”),axis。title=element_text(size=10,face=“plain”,color=“black”),axis。text = element_text(size=10,face=“plain”,color=“black”),legend。position=“none”)
三進階畫法(3D瀑布圖)
相對於行分面瀑布圖,3D瀑布圖中不同類別間的差異更為直觀,能更好地觀察類與類之間的差距。
載入R包
library(plot3D)
library(RColorBrewer)
匯入資料
data<-read。csv(“Facting_Data。csv”,check。names =FALSE)
資料處理
N<-ncol(data)-1
plotdata<-data。frame(x=numeric(),y=numeric(),variable=character())for (i in1:N){tempdata<-data。frame(spline(data[,1],data[,i+1],n=300,method= “natural”))tempdata$variable<-colnames(data)[i+1]plotdata<-rbind(plotdata,tempdata)}
#插值處理
plotdata$variable<-as。numeric(plotdata$variable)
group<-unique(plotdata$variable)M<-length(group)
調整顏色
gg_color_hue <- function(n) {hues = seq(15, 375, length = n + 1)hcl(h = hues, l = 65, c = 100)[1:n]}colormap <- rev(gg_color_hue(M))
#brewer。pal(M,‘RdYlGn’)
繪製3D瀑布圖
pmar <- par(mar = c(5。1, 4。1, 4。1, 6。1))perspbox(z=as。vector(0),
#add=TRUE,
xlim=c(20,70),ylim=c(360,750),zlim=c(0,15),ticktype = “detailed”,bty = “f”,box = TRUE,colkey = FALSE,theta = -110, phi = 20, d=3)for (i in 1:M){df0<-plotdata[plotdata$variable==group[i],]Ndf<-nrow(df0)df<-rbind(df0,c(df0$x[1],df0$y[Ndf],df0$variable[Ndf]))with(df,polygon3D(x=variable,y=x, z=y, alpha=0。6,col=colormap[i],lwd = 3,add=TRUE,colkey = FALSE))with(df0,lines3D(x=variable,y=x, z=y,lwd = 0。5,col=“black”,add=TRUE))}colkey (col=colormap,clim=range(plotdata$y),clab = “Z Value”, add=TRUE, length=0。5,side = 4)
#設定圖例
備註:X軸變數資料(不同樣本)、不同的Y軸離散型變數(不同指標)、Z軸數值變數(指標相對含量)