Получение «Непостоянная ошибка при передаче переменной» при установке пределов y - PullRequest
0 голосов
/ 19 февраля 2012

У меня небольшая проблема с использованием ggplot2 графика geom_line.

Когда я применяю ylim, график становится пустым.В режиме по умолчанию ggplot загромождает ось Y всеми значениями, но я хочу увеличить опорные пределы до небольших больших промежутков, то есть с 17,3,17,5,17,7 до 17-18 с неповрежденным графиком.Я использую ylim(c(15,30)), предел увеличивается, но график исчезает.

Я пытался использовать scale_y_continuous(breaks=c(15,30)):

[Ошибка: непостоянная переменная передана scale_y_continuous]

и scale_y_discrete(breaks=c(15,30))

[исчезает вся строка y]

enter image description here

После ограничений: enter image description here

DataFrame:

>head(meltedB)
             Mouse     Type       days weight
    1      21-H807  control 2011-09-23   27,0
    2      21-H808  control 2011-09-23   27,8
    3 21-H809/J125 knockout 2011-09-23   29,1
    4      21-H810  control 2011-09-23   27,2
    5      21-H811  control 2011-09-23   18,2
    6      21-H812  control 2011-09-23   18,8

Используемая команда:

ggplot(na.omit(meltedB),aes(factor(days),weight,group=Mouse)) + 
    geom_line(aes(color=Mouse),size=2) + 
    facet_grid(Type~.)

** Для тех, кто борется с построением значений NA, используйте na.omit на вашем информационном кадре, они не будут отображаться.

Ответы [ 2 ]

3 голосов
/ 19 февраля 2012

Существует два больших совета, которые R предоставил вам для диагностики этой проблемы.Первое - это действительно уродливое решение о маркировке по оси Y.Второе - это явное сообщение об ошибке, в котором говорится, что вы передали «не непрерывную» переменную в scale_y_continuous.

Ваша переменная y хранится как фактор (или, возможно, символ).Для подтверждения введите str(meltedB) в консоли.

Скорее всего, проблема в запятых.Вам нужно будет вернуться к тому моменту, когда вы прочитаете данные, и измените аргумент dec на read.table, для которого по умолчанию задан период.

0 голосов
/ 28 мая 2012

Проблема в том, что ylim () и (scale_y_discrete ()) обрезают данные, которые выходят за эти новые границы, потому что он автоматически также устанавливает пределы () на то же самое.

Есть два обходных пути

  • использовать scale_y_continuous (breaks = c (15,30), пределы = диапазон (набор данных))
  • используйте вместо координат #cartesian (ylim = c (15,30)) # (что только увеличивает масштаб данных)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...