#r #ggplot2
#r #ggplot2
Вопрос:
Мне нужно сделать график в ggplot, и я столкнулся с парой проблем…
Итак, вот образец моих данных:
SAT GPA Tutor1 Tutor2 ESL Sex Aid Race Tutor_ 1 1010 3.69 1 1 No M 1 1 1 2 670 2.82 0 0 Yes M 0 1 0 3 1120 3.95 0 1 No F 1 2 1 4 1230 3.51 1 0 Yes F 1 1 1 5 1340 4.42 0 1 No F 0 1 1 6 1200 2.99 0 0 No F 0 1 0 7 1090 4.01 0 1 No M 1 1 1 8 710 2.90 1 0 No F 1 1 1 9 1060 3.67 1 0 No F 1 2 1 10 1150 3.91 1 1 No F 1 1 1
В конечном счете, я пытаюсь создать диаграмму рассеяния, которая показывает средний балл (по оси x) по сравнению с SAT (по оси y) с помощью переменной ‘Tutor_’, со значениями 0 фиолетовым и 1 красным. Я хотел бы иметь легенду справа, которая показывает «as.factor(Tutor_)» и оба значения, а также две линии регрессии (одна для 0, а другая для 1) с доверительными интервалами для каждой.
Вот что я пробовал до сих пор. Мне все еще нужно разделить значения переменной ‘Tutor_’, чтобы они не были одного цвета.
mytheme lt;- theme(legend.position="right", plot.title = element_text(size = (12), hjust = 0.5), axis.title = element_text(size = (12))) ggplot(data = mydata, mapping = aes(x = GPA, y = SAT)) geom_point(aes(x = GPA, y = SAT)) geom_smooth(method = "lm") ggtitle("Tutoring: SAT and GPA") mytheme
Я также хотел бы знать, как создать подзаголовок, который можно разместить непосредственно под заголовком. Мы высоко ценим любой вклад в различные аспекты этого вопроса!
Ответ №1:
library(tidyverse) mydata = read.table( header = TRUE,text=" Row SAT GPA Tutor1 Tutor2 ESL Sex Aid Race Tutor_ 1 1010 3.69 1 1 No M 1 1 1 2 670 2.82 0 0 Yes M 0 1 0 3 1120 3.95 0 1 No F 1 2 1 4 1230 3.51 1 0 Yes F 1 1 1 5 1340 4.42 0 1 No F 0 1 1 6 1200 2.99 0 0 No F 0 1 0 7 1090 4.01 0 1 No M 1 1 1 8 710 2.90 1 0 No F 1 1 1 9 1060 3.67 1 0 No F 1 2 1 10 1150 3.91 1 1 No F 1 1 1" ) %gt;% as_tibble() %gt;% mutate(Tutor_ = Tutor_ %gt;% fct_inorder()) mytheme lt;- theme( legend.position="right", plot.title = element_text(size = (12), hjust = 0.5), axis.title = element_text(size = (12))) mydata %gt;% ggplot(aes(GPA, SAT, color = Tutor_)) geom_point() geom_smooth(formula = 'y ~ x', method = "lm") ggtitle("Tutoring: SAT and GPA") mytheme
Несколько заключительных замечаний.
- Диаграмма была создана на основе опубликованных вами данных.
- Ключевая мутация заключается в
mutate(Tutor_ = Tutor_%gt;% fct_inorder())
- Вход
aes
ggplot
должен получать информацию о цветеcolor = Tutor_
. - Во
geom_point
-вторых , вам не нужно устанавливать эстетику во второй раз. - Используйте эту
dput
функцию при публикации данных в будущем. Например,dput(mydata)
и опубликуйте то, что возвращает функция.