2014-03-29 34 views
0

我有興趣爲巴西國內生產總值建立一個面積圖,根據GDP分量對其進行分層。我有以下的數據幀:ggplot 2的分層面積圖

> head(data) 
    Quarter  C  G  I NX 
1 1995.I 100057 35636 24624.0 -3387 
2 1995.II 104893 35651 33928.0 -3691 
3 1995.III 115704 36905 29423.0 -1772 
4 1995.IV 120058 40242 39233.0 -1863 
5 1996.I 105639 33202 26552.0 -523 
6 1996.II 108432 35326 34160.2 -1807 

我設法重新組織以下列方式:

> head(data.new) 
    Quarter components reals id 
1.C 1995.I   C 100057 1 
2.C 1995.II   C 104893 2 
3.C 1995.III   C 115704 3 
4.C 1995.IV   C 120058 4 
5.C 1996.I   C 105639 5 
6.C 1996.II   C 108432 6 

然後我用下面的命令,以便與gplot2繪製它:

graph1 = ggplot(data.new, aes(x = Quarter, y = reals, fill = components)) + 
    geom_area(position = 'stack') + 
    labs(x = "Quarter", 
     y = "$R (millions)", 
     title = "Composition of GDP for Brazil") 

但是,在打印graph1時,我得到了一個具有正確的x和y軸和圖例的圖,但沒有繪製區域。

請問有人能指出我的錯誤嗎?

回答

0

這就像你要找的東西? (這是沒有太大的不同,我可以告訴):

dat <- structure(list(Quarter = structure(1:6, .Label = c("1995.I", "1995.II", "1995.III", "1995.IV", "1996.I", "1996.II"), class = "factor"), 
         C = c(100057L, 104893L, 115704L, 120058L, 105639L, 108432L), 
         G = c(35636L, 35651L, 36905L, 40242L, 33202L, 35326L), 
         I = c(24624, 33928, 29423, 39233, 26552, 34160.2), 
         NX = c(-3387L, -3691L, -1772L, -1863L, -523L, -1807L)), 
       .Names = c("Quarter", "C", "G", "I", "NX"), class = "data.frame", row.names = c(NA, -6L)) 

dat.m <- melt(dat, id.vars=c("Quarter")) 

gg <- ggplot(dat.m, aes(x=Quarter, y=value , group=variable, fill=variable)) 
gg <- gg + geom_area(position="stack") 
gg <- gg + labs(x = "Quarter", y = "$R (millions)", title = "Composition of GDP for Brazil") 
gg <- gg + theme_bw() 
gg 

plot