Нарисуйте линию тренда с помощью ggplot

#r #ggplot2

#r #ggplot2 #линия тренда

Вопрос:

Я использовал ggplot2, чтобы нарисовать линию тренда на основе моих данных.

Ниже приведено то, что я сделал с помощью электронной таблицы.

Но я хочу показать только линию тренда (черную линию, как показано на верхнем графике), а не все точки, поскольку количество наблюдений> 20 000.

Итак, я попытался сделать то же самое, используя ggplot2.

 fig_a <- ggplot(df1, aes(data_x, data_y ))
fig_a   stat_smooth(method=lm)
fig_a   stat_smooth(method=gam)
  

Видимо, это плохо работает, кто-нибудь может помочь?

Почему он дает так много линий, а не одну линию тренда?

Комментарии:

1. ваша переменная y, по-видимому, является фактором

2. Как я могу это исправить?

Ответ №1:

Вы можете сделать следующее. Добавьте geom_smooth(method = "lm") в свой скрипт ggplot.

Пример использования встроенных данных

 ggplot(mpg, aes(displ, hwy))   geom_point()   geom_smooth(method = "lm")
  

введите описание изображения здесь

Комментарии:

1. ggplot(mpg, aes(displ, hwy)) geom_point() geom_smooth(метод = «lm») не работает. также появилось много линий.

2. Не могли бы вы попробовать вставить свои переменные в строку кода, показанную выше?

3. Здесь код работает нормально. Возможно, попробуйте переустановить библиотеку для ggplot2; в противном случае вы можете обновить свою версию R (если не используете самую последнюю). Не уверен, но может сработать.

4. верно, вероятно, потому, что у меня> 20 000 точек данных, я не знаю, но я использую обновленную версию. Спасибо.

5. @Sakura: Я подтверждаю, что код Милана работает для меня. Просто небольшой совет, если вы «хотите показать только линию тренда» (как вы просили), опустите geom_point() в коде milan. В результате получается ggplot(mpg, aes(displ, hwy)) geom_smooth(метод = «lm»)