#r #ggplot2 #plot #regression
#r #ggplot2 #график #регрессия
Вопрос:
Я сгенерировал следующий график регрессии
с помощью кода
ggplot(data, aes(x=EDUCLVL , y=CUMDOSE))
geom_point()
geom_smooth(method="lm", col="black")
stat_regline_equation()
theme_bw()
Мне нужна помощь в двух аспектах.
- По моей оси x у меня значения 5,6,10,11,12,15,16,17,18,20,21,22,23,24,25.Я хотел бы показать все значения по оси x, но R принимает только 5 значений случайным образом с промежутком в 5, любой вариант для получения всех значений каким-либо образом (независимо от четкости или размера).
- Уравнение регрессии отображается в верхнем левом углу, я хотел бы разместить его в верхнем правом углу, есть ли какой-либо доступный вариант для определения уравнения на стороне выбора?
Ответ №1:
Вы не опубликовали свои данные, но вот решение, с помощью mtcars
которого вы можете настроить под свои нужды.:
ggplot(mtcars, aes(x=mpg , y=cyl))
geom_point()
geom_smooth(method="lm", col="black")
scale_x_continuous(breaks = round(seq(min(mtcars$mpg), max(mtcars$mpg), by = 2),1))
stat_regline_equation(label.x = 28, label.y = 9)
theme_bw()
Ответ №2:
Вот другой подход. Он устанавливает разрывы по оси x для конкретных уникальных значений в EDUCLVL
. Параметры label.x.npc
и label.y.npc
устанавливают относительное положение уравнения вдоль каждой оси, где 0 для нижнего / левого и 1 для верхнего / правого. Эти параметры также принимают символьные значения, такие как «top» и «centre».
ggplot(data, aes(x=EDUCLVL , y=CUMDOSE))
geom_point()
geom_smooth(method="lm", col="black")
scale_x_continuous(breaks = unique(sort(data$EDUCLVL)))
stat_regline_equation(label.x.npc = 0.8, label.y.npc = 1)
theme_bw()