Хобрук: Ваш путь к мастерству в программировании

Ошибка построения графика при использовании функции фасетирования ggplot в R

Я пытаюсь сравнить наборы наблюдаемых и смоделированных данных для двух станций. Одна станция называется «красная», а другая — «синяя». Мне удалось создать фасеты, но когда я попытался добавить две серии в один фасет, обновился только один фасет, а другой нет.

Это означает, что для синего цвета наносится только одна серия, а для красного — две серии.

Код, который я использовал, выглядит следующим образом:

    # install.packages("RCurl", dependencies = TRUE)
require(RCurl)
out <- postForm("https://dl.dropbox.com/s/ainioj2nn47sis4/watersurf1.csv?dl=1", format="csv")
watersurf <-  read.csv(textConnection(out))
watersurf[1:100,]

watersurf$coupleid <- factor(rep(unlist(by(watersurf$id,watersurf$group1,
                                           function(x) {ave(as.numeric(unique(x)),FUN=seq_along)}
                                           )),each=6239))


p <- ggplot(data=watersurf,aes(x=time,y=data,group=id))+geom_line(aes(linetype=group1),size=1)+facet_wrap(~coupleid)
p

Можно ли также добавить на график третью серию, но неравной длины (т.е. с другим интервалом)?

Вывод: введите здесь описание изображенияЯ следовал примеру на этой странице, чтобы создать графики. http://www.ats.ucla.edu/stat/r/faq/growth.htm

22.01.2013

Ответы:


1

Это то, что вы ищите,

ggplot(data = watersurf, aes( x = time, y = data))
       + geom_line(aes(linetype = group1, colour = group1), size = 0.2) 
       + facet_wrap(~ id)
22.01.2013
  • Привет Эрик, Спасибо за ваш ответ. Я не думаю, что здесь проблема с масштабом. Серии обеих станций имеют более-менее одинаковый диапазон, так что с масштабом проблем быть не должно. Не могли бы вы увидеть график? Думаю, это как-то связано с легендой. Но я не мог понять. Спасибо. 22.01.2013
  • @Jdbaba, я, очевидно, неправильно понял твой вопрос. В вашем примере есть два сюжета 1) ggplot(data=watersurf,aes(x=time,y=data))+geom_line()+facet_wrap(~id) 2) и те, которые заканчиваются на p. Тогда я не уверен, чего ты хочешь. Когда я смотрю на table(watersurf$group1, watersurf$coupleid), кажется, что ваш сюжет работает правильно. Не могли бы вы расширить, в чем проблема? 22.01.2013
  • Я удалил первую строку кода, которая вас смутила. Меня беспокоит то, что одна грань показывает только одну серию, а одна грань показывает две серии. Это должны быть обе грани, должны отображаться обе серии. Один сплошной, другой пунктирный. Только одна грань делает это. 22.01.2013
  • Если вы посмотрите на table(watersurf$group1, watersurf$coupleid), вы увидите, что один аспект имеет один тип данных. Я могу ошибаться, но взгляните на таблицу, table(watersurf$group1, watersurf$coupleid). 22.01.2013
  • Я использовал ggplot(data=watersurf,aes(x=time,y=data,group=id))+geom_line(aes(linetype=group1, colour = group1), size = 0.2)+facet_wrap(~coupleid), чтобы лучше рассмотреть две серии, и мне все еще кажется, что обе грани показывают одну серию. 1 — моделируемое, 2 — наблюдаемое. 22.01.2013
  • Возможно, ты прав. Но если я немного изменю код таким образом, я смогу увидеть обе серии, но легенда, похоже, испорчена. ggplot(data=watersurf,aes(x=time,y=data,group=id))+geom_line(aes(linetype=group1,color=id),size=0.2)+facet_wrap(~coupleid) Похоже на код line watersurf$coupleid имеет небольшую проблему. Я создал этот код на основе ats.ucla.edu/stat/r/ faq/growth.htm. 22.01.2013
  • @ Эрик Фэйл Большое спасибо. Такой элегантный код без какой-либо путаницы. Мой код был сложным. Я очень ценю ваше время и помощь. 22.01.2013
  • @ Эрик Фолл, что мне нужно сделать, чтобы создать диаграмму рассеяния между смоделированным синим и наблюдаемым синим и смоделированным красным против наблюдаемого красного из этого набора данных. Нужно ли мне делать некоторые модификации? 22.01.2013
  • @Jdbaba, попробуйте взглянуть на эти примеры из ggplot2 0.9.3 руководство. 22.01.2013
  • Новые материалы

    Я собираюсь научить вас Python шаг за шагом
    Привет, уважаемый энтузиаст Python! 👋 Готовы погрузиться в мир Python? Сегодня я приготовил для вас кое-что интересное, что сделает ваше путешествие более приятным, чем шарик мороженого в..

    Альтернатива шаблону исходящих сообщений для архитектуры микросервисов
    Познакомьтесь с двухэтапным сообщением В этой статье предлагается альтернативный шаблон для папки Исходящие : двухэтапное сообщение. Он основан не на очереди сообщений, а на..

    React on Rails
    Основное приложение Reverb - это всеми любимый монолит Rails. Он отлично обслуживает наш API и уровень просмотра трафика. По мере роста мы добавляли больше интерактивных элементов..

    Что такое гибкие методологии разработки программного обеспечения
    Что представляют собой гибкие методологии разработки программного обеспечения в 2023 году Agile-методологии разработки программного обеспечения заключаются в следующем: И. Введение A...

    Ториго  — революция в игре Го
    Наш следующий вызов против ИИ и для ИИ. Сможет ли он победить людей в обновленной игре Го? Обратите внимание, что в следующей статье AI означает искусственный интеллект, а Goban  —..

    Простое развертывание моделей с помощью Mlflow — Упаковка классификатора обзоров продуктов NLP от HuggingFace
    Как сохранить свои модели машинного обучения в формате с открытым исходным кодом с помощью MLFlow, чтобы позже получить возможность легкого развертывания. Сегодня модели упаковки имеют несколько..

    Математика и интуиция - Часть 1
    У каждой математической формулы есть доказательство. Часто эти доказательства слишком сложно понять, поскольку многие из них основаны на индукции, некоторые - на очень сложных наблюдениях, а..