ggplot2中堆积的条形图

时间:2017-03-22 04:06:01

标签: r ggplot2

我想在堆积条形图中绘制数据。 我的数据就像这样

$_GET retrieves variables from the querystring, or your URL.>

$_POST retrieves variables from a POST method, such as (generally) forms.

$_REQUEST is a merging of $_GET and $_POST where $_POST overrides $_GET.

我应该如何开始。

2 个答案:

答案 0 :(得分: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")

答案 1 :(得分: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