2015-06-11 110 views
1

我剛剛接觸R,並試圖在RStudio中通過使用包含多個變量的1000個觀察值的數據集在單個圖中生成多個條形圖。下面是該數據集的片段:在R中創建多個圖依賴於兩個不同的分類變量

Municipality Production Type 
Atima   690   Reverification 
Atima   120   Reverification 
Atima   220   Reverification 
Comayagua  153   Initial 
Comayagua  193   Initial 
Comayagua  138   Initial 
Comayagua  307   Reverification 
Copán   179   Initial 
Copán   100   Initial 
Copán   236   Reverification 
Copán   141   Reverification 
Danlí   56   Reverification 
... 

數據集的結構

Classes ‘tbl_df’, ‘tbl’ and 'data.frame': 1543 obs. of 3 variables: 
$ Municipality : chr "Atima" "Atima" "Atima" "Comayagua" ... 
$ Production  : num 98 690 153 307 179 ... 
$ Type   : chr "Reverification" "Reverification" "Reverification" "Initial" ... 

我想拿出是顯示一對杆(每市1對)一barplot,一顯示一個市政府在「Initial」中的生產量以及另一個顯示「重新驗證」的數量的酒吧。

我已經嘗試了各種命令,如barplot,條形圖和ggplot,但迄今沒有成功。

我應該將Type變量分成2,1每個類別嗎?我也試圖繪製它僅取決於式生產,並收到以下消息:7

感謝

barplot(table(dataset$Production[dataset$Type=="Initial"]), names.arg = Municipality) 
Error in barplot.default(dataset$Production[dataset$Type=="Initial"]), names.arg = 
Municipality, : incorrect number of names 

我在Rstudio版本0.99.441工作,在Windows提前尋求你的幫助。

回答

1

試試這個:

library(ggplot2) 
library(data.table) 
df_s <- 
    as.data.table(df)[ , .("Production_Sum" = sum(Production)), 
         by = .(Municipality, Type)] 

ggplot(df_s, aes(x = Municipality, y = Production_Sum, fill = Type)) + 
    geom_bar(stat = "identity", position = position_dodge()) 

enter image description here

我使用(你在你的OP指定)以下數據:

df <- read.table(header = TRUE, text = "Municipality Production Type 
Atima   690   Reverification 
Atima   120   Reverification 
Atima   220   Reverification 
Comayagua  153   Initial 
Comayagua  193   Initial 
Comayagua  138   Initial 
Comayagua  307   Reverification 
Copán   179   Initial 
Copán   100   Initial 
Copán   236   Reverification 
Copán   141   Reverification 
Danlí   56   Reverification 
") 
+0

grrgrrbla嗨,我得到這個錯誤信息: 錯誤:ggplot2不知道如何處理類函數的數據 我的錯誤是什麼?謝謝你的幫助。 –

+0

你應該使用的data.frame應該命名爲df,你可以在ggplot-function-call的開頭輸入它,以便使用'ggplot(data = df,.....)',所以不用df你的data.frame被調用,我猜你的名字不是df,但有些不同,我編輯了這個問題來包含我使用的數據 – grrgrrbla

+0

這需要更多的工作,重新整理和總結數據......我編輯了我的文章,請接受通過點擊嘀嗒標記並點擊向上箭頭來獲得答案,點擊向上箭頭 – grrgrrbla

相關問題