#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»)