график с областями с накоплением в ggplot2, возвращенный в виде сгруппированных линий

Я хотел бы построить (используя 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

введите здесь описание изображения


person Chiara Piro    schedule 01.08.2017    source источник
comment
Не могли бы вы привести рабочий пример? Попробуйте опубликовать часть своего файла data.fame или смоделировать некоторые данные самостоятельно. Дополнительные советы по обмену данными можно найти здесь.   -  person Roman Luštrik    schedule 01.08.2017


Ответы (2)


Ваш код работает достаточно хорошо, я только что переместил параметр 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()

введите здесь описание изображения

person Mal_a    schedule 01.08.2017

У меня не было этой проблемы с набором данных @Malvina_a. Однако, если бы я использовал набор данных алмазов из ggplot2 с моим:

  • y1 как числовой "разрез"
  • x как числовой "цвет"
  • кантри как иероглиф "ясность"

тогда это действительно происходит.

Итак, я взял меньшее подмножество набора данных ромбов (подмножество примерно из 22 строк?), И оно сработало с заполнением правильно.

Это не полностью поможет вам решить проблему, но, надеюсь, поможет понять, в чем проблема.

person user7715029    schedule 02.08.2017
comment
Спасибо, действительно, мне удалось решить проблему, когда я суммировал уловы по странам с помощью библиотеки (plyr). Тем не менее, я понятия не имею, почему ggplot не понравился полный набор данных. - person Chiara Piro; 02.08.2017