Хочу слой AES в ggplot2

Я хотел бы нанести еще одну серию данных поверх текущего графика. Дополнительные данные содержат информацию только для 3 (из 6) spp, которые используются в facet_wraping.

Другая серия данных в настоящее время является столбцом (в том же файле данных).

Текущий график:

ped.num <- ggplot(data, aes(ped.length, seeds.inflorstem))

ped.num + geom_point(size=2) + theme_bw() + facet_wrap(~spp, scales = "free_y")

Дополнительный слой будет:

aes(ped.length, seeds.filled)

Я чувствую, что должен быть в состоянии построить их, используя одну и ту же ось Y, потому что они имеют немного меньшие значения. Как мне добавить этот слой?

2 ответа

Решение

Решение @ialm должно работать нормально, но я рекомендую позвонить aes функционировать отдельно в каждом geom_* потому что это делает код легче для чтения.

ped.num <- ggplot(data) +
                 geom_point(aes(x=ped.length, y=seeds.inflorstem), size=2) +
                 theme_bw() + 
                 facet_wrap(~spp, scales="free_y") +
                 geom_point(aes(x=ped.length, y=seeds.filled))

(Вы всегда получите лучшие ответы, если вы включите пример данных, но я сделаю снимок в темноте)

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

library(reshape2)

# Melting data gives you exactly one observation per row - ggplot likes that
dat.melt <- melt(dat, 
                 id.var = c("spp", "ped.length"),
                 measure.var = c("seeds.inflorstem", "seeds.filled")
)


# Plotting is slightly different - instead of explicitly naming each variable,
# you'll refer to "variable" and "value"
ggplot(dat.melt, aes(x = ped.length, y = value, color = variable)) +
    geom_point(size=2) + 
    theme_bw() + 
    facet_wrap(~spp, scales = "free_y")

seeds.filled Значения следует наносить только на грани соответствующего вида.

Я предпочитаю это подходу Дрю (полностью корректному) явного отображения различных слоев, потому что вам нужен только один geom_point() есть ли у вас две переменные или двадцать, и легко сопоставить различные эстетики variable,

Другие вопросы по тегам