[英]How to create a matrix of plots with R and ggplot2
我試圖將n個連續的圖表排列成一個單獨的圖表矩陣。 我通過運行for循環得到了第一個地塊,但我無法弄清楚如何將它們安排到“情節圖”中。 我使用了par(mfrow = c(num.row,num.col))但它不起作用。 多胎(plotlist = p,cols = 4)和plot_grid(plotlist = p)
#import dataset
Survey<-read_excel('datasets/Survey_Key_and_Complete_Responses_excel.xlsx',
sheet = 2)
#Investigate how the dataset looks like
glimpse(Survey)#library dplyr
#change data types
Survey$brand <- as.factor(Survey$brand)
Survey$zipcode <- as.factor(Survey$zipcode)
Survey$elevel <- as.factor(Survey$elevel)
Survey$car <- as.numeric(Survey$car)
#Relation brand-variables
p = list()
for(i in 1:ncol(Survey)) {
if ((names(Survey[i])) == "brand"){
p[[i]]<-ggplot(Survey, aes(x = brand)) + geom_bar() +
labs(x="Brand")
} else if (is.numeric(Survey[[i]]) == "TRUE"){
p[[i]]<-ggplot(Survey, aes(x = Survey[[i]], fill=brand)) + geom_histogram() +
labs(x=colnames(Survey[i]))
} else {
p[[i]]<-ggplot(Survey, aes(x = Survey[[i]], fill = brand)) + geom_bar() +
labs(x=colnames(Survey[i]))
}
}
我認為繪圖正確地附加到列表中,但我無法以矩陣形式繪制它們。
問題似乎不是你的多個圖,而是如何將變量調用到你的圖中。
您已經將“Survey”放入ggplot作為第一個參數(數據槽)。 在映射參數(第二個插槽)中,您放入aes(...)並在其中指定變量名稱,而不是數據本身。 試試這個:
當你有aes(x = Survey[[i]], fill=brand))
在兩個地方,把aes(x = names(Survey[[i]], fill=brand))
來代替。
關於繪制多個繪圖, par(mfrow...
用於基礎R繪圖,不能用於ggplots。grid.arrange,multiplot和plot_grid應該在你的繪圖中修復錯誤后都能正常工作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.