2014-02-19 4 views
2

Я пытаюсь создать участок с разбивкой по площади, используя ggplot2, следуя примеру, представленному в ответе на этот вопрос (Getting a stacked area plot in R). Я могу заставить этот пример работать отлично, но при реализации метода я получаю сообщение об ошибке, которое я не могу исправить.ggplot2 - Ошибка площади участка

Вот что я получил:

Мои данные выглядит следующим образом:

> head(trial) 
    Dates  Day_Night day_propor 
1 2013-01-01  N1  553 
2 2013-01-01   D  981 
3 2013-01-01  N2  866 
4 2013-01-02  N1  553 
5 2013-01-02   D  982 
6 2013-01-02  N2  865 

я стараюсь построения графика.

p1 <- ggplot(trial, aes(x=Dates,y=day_propor,group=Day_Night,fill=var)) + geom_area(position="fill") 

И получите ошибку

p1 

Don't know how to automatically pick scale for object of type function. Defaulting to continuous 
Error in data.frame(x = c(1L, 1L, 1L, 2L, 2L, 2L, 3L, 3L, 3L, 4L, 4L, : 
arguments imply differing number of rows: 1095, 0 

ошибки, кажется, предполагает, что одна из колонн в data.frame неправильного класс данных, но я попытался смешивания и сопоставление каждого класса мог подумать из. Для записи Вот они:

> sapply(trial, class) 
    Dates Day_Night day_propor 
"factor" "factor" "numeric" 

Что мне не хватает?

ответ

0

Вам не хватает var переменная в вашем фрейме данных. Вот почему он просматривается в глобальной среде, где он обозначает функцию дисперсии. Это просто ошибка копирования-вставки; работает следующий код.

ggplot(trial, aes(x=Dates, y=day_propor, group=Day_Night, fill=Day_Night)) + 
    geom_area(position="fill") 

В качестве последнего замечания, вы можете иметь проблемы с Dates как фактор. Может оказаться полезным преобразование соответствующего объекта datetime, такого как POSIXct.

+0

Большое спасибо. Иногда свежая пара глаз имеет большое значение. –

+0

Добро пожаловать! – tonytonov

Смежные вопросы