我的挑戰是一次繪製幾個條形圖,即不同子集的每個變量的繪圖。我的目標是比較每個變量的區域差異。我想通過R Markdown將所有生成的圖表打印到html文件中。繪製循環中的幾個分組條形圖[R]
我在製作自動分組條形圖時遇到的主要困難是,您需要使用table(data$Var[i], data$Region)
製表組,但我不知道如何自動執行此操作。我將非常感謝這方面的提示。
這裏是什麼我的子集的一個看起來像一個例子:使用beside = TRUE
# To Create this example of data:
b <- rep(matrix(c(1,2,3,2,1,3,1,1,1,1)), times=10)
data <- matrix(b, ncol=10)
colnames(data) <- paste("Var", 1:10, sep = "")
data <- as.data.frame(data)
reg_name <- c("North", "South")
Region <- rep(reg_name, 5)
data <- cbind(data,Region)
,我能創造一個分組條形圖(按區域VAR1從數據分組):
tb <- table(data$Var1,data$Region)
barplot(tb, main="Var1", xlab="Values", legend=rownames(tb), beside=TRUE,
col=c("green", "darkblue", "red"))
我想循環這個過程以產生用於實施例10個重複對VAR1到Var10:
for(i in 1:10){
tb <- table(data[i], data$Region)
barplot(tb, main = i, xlab = "Values", legend = rownames(tb), beside = TRUE,
col=c("green", "darkblue", "red"))
}
[R喜歡apply
家庭的功能,因此我試圖創建一個功能應用:
fct <- function(i) {
tb <- table(data[i], data$Region)
barplot(tb, main=i, xlab="Values", legend = rownames(tb), beside = TRUE,
col=c("green", "darkblue", "red"))
}
sapply(data, fct)
我曾嘗試其他方法,但我從來沒有成功。也許lattice
或ggplot2
將提供更簡單的方法來做到這一點。我剛剛開始在R,我會很樂意接受任何提示和建議。謝謝!
(我在Windows上運行,與最近Rv3.1.2「Pumpking頭盔」)
謝謝Arvi的建議。我更喜歡「許多情節」選項,但是我忽略了變量的名稱或數量(VarX)。我嘗試過title = paste(名字[i])。 – 2014-11-04 22:30:10
除了這個問題:看來我的地區有非常不同的數字。繪製等於每個值的區域百分比會更好。我正在嘗試使用'prop.table'... – 2014-11-04 22:35:56
1)由於上面的代碼在var名稱上使用'lapply',所以您可以使用'ggtitle(x)'2)修改'this_dat'來顯示比例,然後使用'geom_bar(stat ='identity')進行繪圖' – arvi1000 2014-11-04 22:39:36