ggplot2中的堆积区域图以堆积线形式返回

时间:2017-08-01 09:44:54

标签: r ggplot2 charts stacked-area-chart

我想使用堆积区域绘制(使用ggplot)每年按国家/地区捕获数据。然而,我在创建堆积区域图表时遇到了问题;由于某种原因,它正在返回堆叠线:

    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

2 个答案:

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

答案 1 :(得分:0)

@ Malvina_a的数据集我没有遇到这个问题。 但是,如果我使用ggplot2中的钻石数据集和my:

  • y1 as a numeric&#34; cut&#34;
  • x为数字&#34;颜色&#34;
  • 国家作为角色&#34;清晰度&#34;

然后确实会发生。

那么,我拿了一小部分钻石数据集(大约22行的子集?),它可以正确填充。

这并不能完全帮助您解决问题,但希望有助于了解问题所在。