Как создать две разные линии регрессии на основе фактора для каждого аспекта? R, ggplot2

Я пытаюсь создать две разные линии на основе упражнения = 0 или упражнения = 1 для каждого аспекта (по полу). Первый код без facet_wrap, и две строки в зависимости от пола отличаются. Второй код с facet_wrap, и две строки кажутся одной и той же строкой. Как я могу изменить код, чтобы две строки были разными в каждом фасете?

ggplot(cdc, aes(weight,wtdesire, color = exercise, group = 
interaction(gender,exercise))) + geom_point(alpha = 1/5) + 
geom_smooth(method = lm, aes(linetype=exercise))

производит: фасет

Однако, когда я добавляю facet_wrap, две строки для каждого фасета кажутся одинаковыми.

ggplot(cdc, aes(weight,wtdesire, color = exercise, group = 
interaction(gender,exercise))) + geom_point(alpha = 1/5) + 
geom_smooth(method = lm, aes(linetype=exercise)) + facet_wrap(~gender)

производит: второй

1 ответ

Решение

Решение @LoBu верное. Вот пример использования данных mtcars:

ggplot(mtcars, aes(hp, mpg, group=interaction(vs, am))) +  
       geom_point(alpha = 0.2) + 
       geom_smooth(method = lm, aes(linetype=as.factor(vs)))

ggplot(mtcars, aes(hp, mpg, group=vs)) +  
       geom_point(alpha = 0.5) + 
       geom_smooth(method = lm, aes(linetype=as.factor(vs))) +
       facet_wrap(~am)

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