2017-08-01 179 views
0

我想繪製(使用ggplot)按國家/地區每年使用堆積面積捕獲數據。但是,我在創建堆積面積圖時遇到了問題;由於某種原因,它返回堆疊線:ggplot2中的堆疊面積圖返回爲堆積線

Med=read.csv("Med1950-2014.csv", header=T) 
    y=as.numeric(Med$catch) 
    x=as.numeric(Med$year) 
    country=as.character(Med$fishing_entity) 
    Medc<- data.frame(x,y1,country) 
    ggplot(Medc,aes(x=x,y=y1))+ geom_area(aes(colour=country,fill=country), position = 'stack') 

我也試過這樣:

gg <- ggplot(Medc, aes(x=as.numeric(as.character(x)), y=y1)) 
    gg <- gg + geom_area(aes(colour=country, fill=country)) 
    gg <- gg + scale_x_discrete(labels=levels(highc$x)) 
    gg 

enter image description here

+0

你能提供一個工作的例子嗎?嘗試張貼您的data.fame的一部分或自己模擬一些數據。有關如何共享數據的更多提示可以[在此處找到](https://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example)。 –

回答

0

您的代碼工作得很好,我剛剛搬進了fill選項從geom_area()ggplot()和下面的代碼將返回彩色區域:

library(ggplot2) 
data <- data.frame(x = c(1960,1968,1970,1960,1966,1970), y = c(0.0004777018,0.0909000000,0.1077696000, 0.8941553688,0.0028121347 ,0.0033915022), country = c("Turkey", "Turkey","Turkey","Croatia","Croatia","Croatia")) 

ggplot(data, aes(x=as.numeric(as.character(x)), y=y,fill=country)) + geom_area() 

enter image description here

0

我沒有得到@ Malvina_a的數據集這個問題。 不過,如果我使用了鑽石的數據從GGPLOT2與我的設置:

  • Y1爲數字「一刀切」
  • X爲數字「顏色」
  • 國家作爲一個字符「清晰度」

然後確實發生。所以,我花了鑽石數據集的一個較小的子集(約22行的子集?),它正確填寫。

這並不能完全幫助您解決問題,但希望可以幫助您瞭解問題所在。

+0

謝謝,當我用圖書館(plyr)按國家總結漁獲量時,的確設法解決了這個問題。不過我不知道爲什麼ggplot不喜歡整個數據集。 –