Добавление легенды к одному графику графика множественной линейной регрессии - PullRequest
1 голос
/ 05 марта 2020

Я построил два ggplots из двух разных наборов данных на одном графике. Графики представляют собой простые линейные регрессии. Я хочу добавить легенду как для линий, так и для точек на графике разными цветами. Как я могу это сделать? Код, который я использовал для сюжета, приведен ниже. Но я не смог добавить к этому желаемую легенду.

ggplot() + 
     geom_point(aes(x = Time_1, y = value1)) +
     geom_point(aes(x = Time_2, y = value2)) +
     geom_line(aes(x = Time_1, y = predict(reg, newdata = dataset)))+
     geom_line(aes(x = Time_Month.x, y = predict(regressor, newdata = training_set)))+ 
     ggtitle('Two plots in a single plot')

1 Ответ

2 голосов
/ 05 марта 2020

ggplot2 добавляет легенды автоматически, если в данных есть группы. Ваш исходный код предоставляет минимальный объем информации для ggplot (), в основном достаточный для его работы, но недостаточный для создания легенды.

Поскольку ваши данные поступают из двух разных объектов из-за двух разных регрессий, то, похоже, все, что вам нужно в этом случае, это добавить аргумент 'color = "INSERT COLOR NAME"' к каждому geom_point () и каждый geom_line (). Используя, например, встроенный набор данных Mtcars от R, вы получите что-то похожее на

ggplot(mtcars) + geom_point(aes(x = cyl, y = mpg)) + geom_point(aes(x = cyl, y = wt)) + ggtitle("Example Graph")

График без легенды

А то, что вы хотите, можно получить с помощью что-то похожее на

ggplot(mtcars) + geom_point(aes(x = cyl, y = mpg, color = "blue")) + geom_point(aes(x = cyl, y = wt, color = "green")) + ggtitle("Example Graph")

График с легендой

Что может показаться переводом на

ggplot() + 
 geom_point(aes(x = Time_1, y = value1, color = "blue")) +
 geom_point(aes(x = Time_2, y = value2, color = "green")) +
 geom_line(aes(x = Time_1, y = predict(reg, newdata = dataset), color = "red"))+
 geom_line(aes(x = Time_Month.x, y = predict(regressor, newdata = training_set), color = "yellow"))+ 
 ggtitle('Two plots in a single plot')

Вы также можете использовать размер, shape или альфа-аргументы внутри aes (), чтобы различать разные серии.

...