2017-03-22 156 views
-1

我想繪製堆積條形圖中的數據。 我的數據是這樣的ggplot2中的堆積條形圖

ID,A,B,C 
D11,2,2,4 
D170,2,0,6 
D171,1,5,2 
D1,5,0,2 
D27,NA,NA,NA 
D295,0,6,2 

我該怎麼開始。

回答

3
library('ggplot2') 
library('reshape2') 
df <- reshape2::melt(df, id.vars = 'ID') # melt data with ID column 
df <- df[!is.na(df$value), ]    # remove NA 
ggplot(data = df, aes(x = ID, y = value)) + 
    geom_bar(aes(fill = variable), stat = 'identity') 

enter image description here

數據:

df <- structure(list(ID = c("D11", "D170", "D171", "D1", "D27", "D295"), 
        A = c(2L, 2L, 1L, 5L, NA, 0L), 
        B = c(2L, 0L, 5L, 0L, NA, 6L), 
        C = c(4L, 6L, 2L, 2L, NA, 2L)), 
       .Names = c("ID", "A", "B", "C"), 
       row.names = c(NA, -6L), class = "data.frame") 
+0

我'[.data.frame'上了車刪除NA一步「錯誤錯誤的答案(DF,!is.na(DF $值)) : 未定義的列選擇「 – user3631848

+0

使用','逗號。 – Sathish

2

除了@ Sathish所在的答案。 下面是一個使用tidyrggplot2

df <- read.table(text = c(" 
ID A B C 
D11 2 2 4 
D170 2 0 6 
D171 1 5 2 
D1 5 0 2 
D27 NA NA NA 
D295 0 6 2"), header = T) 

library(tidyr) 
library(ggplot2) 

df %>% tidyr::gather("var", "value", 2:4) %>% 
    ggplot(., aes(x = ID, y = value))+geom_bar(aes(fill = var), stat ="identity") 

enter image description here