линия регрессии на ggplot не показана - PullRequest
1 голос
/ 31 января 2020

Когда я пытаюсь использовать ggplot, график просто показывает данные в точках, но на графике нет линии вообще. Кроме того, в R. нет ошибок. Данные имеют два столбца, а именно Month и Rainfall. В течение нескольких лет я делал набор данных следующим образом:

Month Rainfall
1        0.7
2         0
3         0
.         .
.         .
12         1.2
1         0
2         0.2
.         .
.         .

Полный код ggplot моего проекта выглядит следующим образом:

 split = sample.split(dataset$Rainfall, SplitRatio = 0.8)
 training_set = subset(dataset, split == TRUE)
 test_set = subset(dataset, split == FALSE)


 regressor = lm(formula = Rainfall ~ Month,
                data = training_set)

 y_pred = predict(regressor, newdata = test_set)
 y_pred


 library(ggplot2)

 ggplot() + 
   geom_point(aes(x = training_set$Month, y = training_set$Rainfall),
               color = 'red') +
   geom_line(aes(x = training_set$Month, y = predict(regressor, newdata = training_set)),
               color = 'blue') +
   ggtitle('Rainfall (Training set)') +
   xlab('Month') +
   ylab('Rainfall')

 ggplot() + 
   geom_point(aes(x = test_set$Month, y = test_set$Rainfall),
               color = 'red') +
   geom_line(aes(x = training_set$Month, y = predict(regressor, newdata = training_set)),
               color = 'blue') +
   ggtitle('Monthly Rainfall (Test set)') +
   xlab('Month') +
   ylab('Rainfall')

Но я не могу построить линию как простую линейную регрессию .

1 Ответ

0 голосов
/ 31 января 2020

Для ggplot2 вы можете использовать geom_smooth (method = "lm") для построения простой линии линейной регрессии.

Вы можете обратиться к этому https://github.com/rstudio/cheatsheets/raw/master/data-visualization-2.1.pdf Шпаргалка о том, как использовать ggplot2.


Пример версии вашего кода ' fixed ':

library(tidyverse)
test_set %>% ggplot(aes(x = Month, y = Rainfall)) + 
   geom_point() +
   geom_smooth(method="lm", se=FALSE) +
   ggtitle('Monthly Rainfall (Test set)') +
   xlab('Month') +
   ylab('Rainfall')

Я использовал это как test_set

test_set <- tribble(
  ~Month, ~Rainfall,
  1,   1,
  2,   2,
  3,   3,
  4,   2,
  5,  .7
)

Example of code above

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...