Mein Ziel ist es, ein Diagramm zu erstellen, das die Unterschiede zwischen Regressionsgeraden mit kontinuierlichen vs kategorialen Variablen zeigt. Ich benutze ist der "SleepStudy" -Datensatz von Lock5Data, und ich möchte die Regressionslinien zeigen Vorhersage GPA von ClassYear als entweder kontinuierlich oder kategorisch. Der Code ist unten:r: Leeres Diagramm beim Zeichnen mehrerer Linien im Streudiagramm
library(Lock5Data)
data("SleepStudy")
fit2 <- lm(GPA ~ factor(ClassYear), data = SleepStudy)
fit2_line <- aggregate(fit2$fitted.values ~ SleepStudy$ClassYear, FUN = mean)
colnames(fit2_line) <- c('ClassYear','GPA')
options(repr.plot.width=5, repr.plot.height=5)
library(ggplot2)
ggplot() +
geom_line(data=fit2_line, aes(x=ClassYear, y=GPA)) + # Fit line, ClassYear factor
geom_smooth(data=SleepStudy, method='lm', formula=GPA~ClassYear) + # Fit line, ClassYear continuous
geom_point(data=SleepStudy, aes(x=ClassYear, y=GPA)) # Data points as dots
Was die leere Grafik produziert? Was fehlt mir hier?
Vielen Dank! Ich bin überrascht, dass man nicht einfach die Daten für jedes Plot-Objekt definieren kann, solange die Achsen kartiert werden können. –
@ThomasMatthew ist es möglich mit anderen Arten von Plot, wie Sie in 'geom_point' machen, aber' geom_smooth' ist nicht so flexibel –