R + ggplot: построение нерегулярных временных рядов - PullRequest
9 голосов
/ 23 июля 2010

У меня есть данные за несколько дней с момента события. Эти данные выбираются нерегулярно - мои временные точки равны 0, 5, 6, 10, 104 дням. У меня нет конкретной информации о дате и времени, т.е. я понятия не имею, когда в реальной жизни произошло событие, которое я изучаю.

Я бы хотел, используя ggplot, построить свой временной ряд. Я могу использовать, скажем

p <- ggplot(data,aes(x=time,y=expression))
p <- p + geom_point()

но, конечно, мои переменные по оси x нанесены рядом друг с другом, так что расстояние между t = 10 и t = 104 такое же, как t = 5 и t = 6. Так что я могу сделать что-то вроде

start <- ISOdate(2001, 1, 1, tz = "")
data$time <- start + data$time*60*60*12

, который почти работает, но теперь отметки на моей оси X ужасно неточные даты. Я мог бы переформатировать их возможно? Но все равно не вижу, чтобы сделать формат «дни от начала». И к настоящему времени я довольно долго гуглял с ощущением, что я упускаю что-то серьезно очевидное. Я?

Ответы [ 2 ]

9 голосов
/ 23 июля 2010

Не уверен, что это то, что вы ищете (см. этот связанный вопрос ).Вы можете переформатировать ось и справиться с нерегулярностью, используя функции scale_x.Например:

p <- qplot(1:3, 1:3, geom='line') 
p + scale_x_continuous("", breaks=1:3, 
        labels = as.Date(c("2010-06-03", "2010-06-04", "2010-06-07")))

Кстати, вот функция, которую я создал для построения многомерных zoo объектов:

qplot.zoo <- function(x) {
  if(!inherits(x, "zoo")) stop("x must be a zoo object")
  x.df <- data.frame(dates=index(x), coredata(x))
  x.df <- melt(x.df, id="dates", variable="value")
  ggplot(x.df, aes(x=dates, y=value, group=value, colour=value)) + geom_line() + opts(legend.position = "none")
}
4 голосов
/ 23 июля 2010

Похоже, ваша переменная time является фактором или, возможно, символьным вектором, а не числовым значением!Если вы сделаете data$time <- as.numeric(data$time), это вполне может решить вашу проблему.

ggplot довольно хорошо использует правильный масштаб для правильных данных.(К сожалению, процедуры импорта данных в R обычно менее разумны ...)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...