2017-11-25 128 views
-3

任何人都可以幫助我讓我的代碼執行相同的操作,但使用ggplot geom_bar函數?更改條形圖到ggplot geom_bar代碼

任何幫助或建議在正確的方向將不勝感激。

數據集:

FID DESTINATION LANGUAGE IMD 
1 Germany  English Internal 
2 Germany  French  Internal 
3 France  English International 
4 USA   English Internal 
5 USA   English International 
6 USA   German  International 
7 Germany  German  Internal 
8 France  French  Internal 
.. 

factor_var <- names(which(sapply(Data, class) == "factor")) 
barchart_res <- lapply(factor_vars, function(x) { 
title <- colnames(Data[,x, drop=FALSE]) 
wgd <- CrossTable(Data[,x], Data$IMD, prop.chisq=F) 
barchart(wgd$prop.row, stack=T, auto.key=list(rectangles = TRUE, space ="top", title = title)) 
}) 
names(barchart_res) <- factor_vars 
barchart_res$LANGUAGE 

回答

0

試試這個:

Data <- read.table(text=" 
FID DESTINATION LANGUAGE IMD 
1 Germany  English Internal 
2 Germany  French  Internal 
3 France  English International 
4 USA   English Internal 
5 USA   English International 
6 USA   German  International 
7 Germany  German  Internal 
8 France  French  Internal 
", header=T) 

library(reshape) 
library(ggplot2) 
library(scales) 
Data.long <- melt(Data, id.vars=c("FID","IMD")) 
ggplot(data=Data.long, aes(x=value, y=FID, group=IMD, fill=IMD)) + 
geom_bar(position = "fill",stat = "identity") + 
scale_y_continuous(labels = percent_format()) + 
facet_wrap("variable", scales="free_x", ncol=1) 

enter image description here