Изменение цветов и представление различных значений в ggplot

#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  

введите описание изображения здесь

Несколько заключительных замечаний.

  1. Диаграмма была создана на основе опубликованных вами данных.
  2. Ключевая мутация заключается в mutate(Tutor_ = Tutor_%gt;% fct_inorder())
  3. Вход aes ggplot должен получать информацию о цвете color = Tutor_ .
  4. Во geom_point -вторых , вам не нужно устанавливать эстетику во второй раз.
  5. Используйте эту dput функцию при публикации данных в будущем. Например, dput(mydata) и опубликуйте то, что возвращает функция.