2016-12-21 4 views
0

Есть ли способ добавить строку для определенных уровней факторов в ggplot? Этот простой пример может служить основой для объяснения того, что я пытаюсь сказать. В этом случае я бы предпочел бы избежать построения последнего уровня.ggplot geom_line для определенных уровней факторов

ggplot(BOD, aes(x=factor(Time), y=demand, group=1)) + geom_line() + geom_point() 

enter image description here

+1

Привет Juanchi, это помогло бы, если включить небольшой пример данных вы работаете в формате, который легко скопировать и вставить в R. –

+1

Пожалуйста, укажите 'BOD' (используйте' dput (BOD) '). Ваш ожидаемый результат не ясен: вы просто хотите удалить «7» из шкалы x? Или удалить последнюю точку? – scoa

+1

BOD находится в базе R ... не нужно включать в качестве dput() – Juanchi

ответ

1

Вы можете просто создать новую переменную с NA -Value для Time == 7:

BOD$demand2[BOD$Time<7] <- BOD$demand[BOD$Time<7] 

, а затем сюжет:

ggplot(BOD, aes(x=factor(Time), y=demand2, group=1)) + 
    geom_line() + 
    geom_point() + 
    theme_classic() 

Вы также можете сделать это на лету, используя функциональность data.table -package:

library(data.table) 
ggplot(data = as.data.table(BOD)[Time==7, demand := NA], 
     aes(x=factor(Time), y=demand, group=1)) + 
    geom_line() + 
    geom_point() + 
    theme_classic() 

Чтобы ответить на комментарий, вы можете включить пункт в 7 следующим образом:

ggplot(BOD, aes(x=factor(Time), y=demand2, group=1)) + 
    geom_line() + 
    geom_point(aes(x=factor(Time), y=demand)) + 
    theme_classic() 
+0

Спасибо! вы знаете, как это сделать, если я хочу сохранить точку в 7? – Juanchi

+0

@Juanchi см. Обновление – Jaap

+0

Там идут ваши очки! – Juanchi

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