Bu arsa üretmek için ggpairs kullandı: Böyle bir korelasyon-matris çizimi yapmanın en iyi yolu nedir?
Ve bu onun için kodudur:
: Böyle bir arsa almak için, amacım ise, Ancak#load packages
library("ggplot2")
library("GGally")
library("plyr")
library("dplyr")
library("reshape2")
library("tidyr")
#generate example data
dat <- data.frame(replicate(6, sample(1:5, 100, replace=TRUE)))
dat[,1]<-as.numeric(dat[,1])
dat[,2]<-as.numeric(dat[,2])
dat[,3]<-as.numeric(dat[,3])
dat[,4]<-as.numeric(dat[,4])
dat[,5]<-as.numeric(dat[,5])
dat[,6]<-as.numeric(dat[,6])
#ggpairs-plot
main<-ggpairs(data=dat,
lower=list(continuous="smooth", params=c(colour="blue")),
diag=list(continuous="bar", params=c(colour="blue")),
upper=list(continuous="cor",params=c(size = 6)),
axisLabels='show',
title="correlation-matrix",
columnLabels = c("Item 1", "Item 2", "Item 3","Item 4", "Item 5", "Item 6")) + theme_bw() +
theme(legend.position = "none",
panel.grid.major = element_blank(),
axis.ticks = element_blank(),
panel.border = element_rect(linetype = "dashed", colour = "black", fill = NA))
main
Bu çizim bir örnektir ve bunu aşağıdaki üç ggplot kodları ile oluşturdum.
Ben Barplot için bu kullanılır:
#-------------------------
#diag./BARCHART
#------------------------
bar.df<-as.data.frame(table(dat[,1],useNA="no"))
#Barplot
bar<-ggplot(bar.df) + geom_bar(aes(x=Var1,y=Freq),stat="identity") +
theme_bw() +
scale_x_discrete(labels=NULL, breaks = NULL) +
scale_y_continuous(labels=NULL, breaks = NULL, limits=c(0,max(bar.df$Freq*1.05))) +
xlab("") +ylab("")
bar
Bu aşağıdaki grafik elde
#------------------------
#lower/geom_point with jitter
#------------------------
#dataframe
df.point <- na.omit(data.frame(cbind(x=dat[,1], y=dat[,2])))
#plot
scatter <- ggplot(df.point,aes(x, y)) +
geom_jitter(position = position_jitter(width = .25, height= .25)) +
stat_smooth(method="lm", colour="black") +
theme_bw() +
scale_x_continuous(labels=NULL, breaks = NULL) +
scale_y_continuous(labels=NULL, breaks = NULL) +
xlab("") +ylab("")
scatter
bu aşağıdaki grafik elde:
Ben geom_point arsa için kullandı :Ve Korelasyon-Katsayıların bu kullandı:
#----------------------
#upper/geom_tile and geom_text
#------------------------
#correlations
df<-na.omit(dat)
df <- as.data.frame((cor(df[1:ncol(df)])))
df <- data.frame(row=rownames(df),df)
rownames(df) <- NULL
#Tile to plot (as example)
test<-as.data.frame(cbind(1,1,df[2,2])) #F09_a x F09_b
colnames(test)<-c("x","y","var")
#Plot
tile<-ggplot(test,aes(x=x,y=y)) +
geom_tile(aes(fill=var)) +
geom_text(data=test,aes(x=1,y=1,label=round(var,2)),colour="White",size=10,show_guide=FALSE) +
theme_bw() +
scale_y_continuous(labels=NULL, breaks = NULL) +
scale_x_continuous(labels=NULL, breaks = NULL) +
xlab("") +ylab("") + theme(legend.position = "none")
tile
Bu aşağıdaki Taslak oluşur:
Sorum şu: arsa almanın en iyi yolu i istediğiniz, nedir? Bir anketten likert maddelerini görselleştirmek istiyorum ve bence bu, bunu yapmanın çok güzel bir yoludur. Bunun için ggpairs kullanmak mümkün mü, her komployu kendi başına üretmeden, custumized ggpairs-plot ile yaptığım gibi. Yoksa bunu yapmanın başka bir yolu var mı?
kolay bir yolu, sizin araziler düzenlemek için 'gridExtra' paketini kullanmak yerine, (burada her arsa için 3) bir fonksiyonu kodunuzu sarın. Örneğin, arsalarınızı bir listeye koyabilirsiniz, sonra sadece şunu yazın: 'do.call (" grid.arrange ", c (plist, ncol = 3, nrow = 3)) – agstudy