Отображение нескольких линий тренда в ggplot - PullRequest
0 голосов
/ 10 апреля 2019

У меня есть следующая таблица:

    id    | membership |   month    |   year     |   numberofXPurchased
----------+------------+------------+------------+-------------------
     1    |    05      |    02      |   2014     |          5
     1    |    06      |    03      |   2014     |          7     
     1    |    07      |    04      |   2014     |          3
     2    |    01      |    11      |   2014     |          2
     2    |    02      |    12      |   2014     |          1
     2    |    03      |    01      |   2015     |          4

Я создал линейный график, используя ggplot, чтобы определить корреляцию между периодом членства и количеством времени покупки X

ggplot(data = df, aes (x = memberMonths, y=numberofXPurchased, group=id, color = id)) +
geom_line() +
geom_point() + 
theme(legend.position = "none") +
labs(y="Membership in Months", x = "X purchased")

Это дает линейный график, как и ожидалось, но, поскольку у меня более 100000 строк данных, график не интерпретируется.Поэтому я пытаюсь отобразить только линии тренда вместо линий, представляющих каждый идентификатор, где 1 линия тренда представляет весь график и набор линий тренда для каждого «года» (возможно на другом графике).

Добавление

stat_smooth( method="lm") or
geom_smooth(method = "lm")

Добавляет только линию тренда к существующему графику, но мне нужна линия тренда вместо данных из df

Есть ли эффективный способ сделать это, Спасибо зазаранее

1 Ответ

0 голосов
/ 10 апреля 2019

Вы можете использовать geom_smooth (), опция 'lm' дает линейную модель

geom_smooth(method = "lm")

Показать ваш код будет выглядеть ..

    ggplot(data = df, aes (x = memberMonths, y=numberofXPurchased,group=id, color = id)) +
    geom_smooth(method = "lm") +
    geom_point() + 
    theme(legend.position = "none") +
    labs(y="Membership in Months", x = "X purchased")

Как представляется, geom_smooth() необходимо geom_point(), чтобы дать правильную линию тренда, я бы использовал alpha=0 в вызове geom_point().

    ggplot(data = df, aes (x = memberMonths, y=numberofXPurchased,group=id, color = id)) +
    geom_smooth(method = "lm") +
    geom_point(alpha=0) + 
    theme(legend.position = "none") +
    labs(y="Membership in Months", x = "X purchased")
...