starter code
library(tidyverse)
## ── Attaching packages ─────────────────────────────────────── tidyverse 1.3.2 ──
## ✔ ggplot2 3.3.6 ✔ purrr 0.3.4
## ✔ tibble 3.1.8 ✔ dplyr 1.0.10
## ✔ tidyr 1.2.1 ✔ stringr 1.4.1
## ✔ readr 2.1.2 ✔ forcats 0.5.2
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag() masks stats::lag()
df1 = tribble(~x, ~y,
0, 1,
1,5,
2,8,
3,10,
4,11,
5,4,
0,2, 0,3,1,6,1,7,2,9,2,10,3,11,3,12,4,12,4,13,5,8,5,12)
df = df1 %>% group_by(x) %>% summarize(ymean = mean(y))
plot
ggplot() +
geom_point(data = df1, mapping = aes(x,y), color = '#ffc0cb', stroke = 2) +
geom_point(data = df, mapping = aes(x,ymean), color = 'red', shape = 13, size = 5, stroke = 1.5)

starter code 2
n=300
df33 = tibble(x=runif(n)*100, y=runif(n)*100) %>% mutate(x=round(x), y=round(y))
dsum33 = df33 %>% summarize(mx = mean(x), my=mean(y), sx=sd(x), sy=sd(y), width=sx, height=sy)
mx = dsum33 %>% .[['mx']]
my = dsum33 %>% .[['my']]
plot 2
ggplot(df33) +
geom_point(aes(x,y)) +
geom_rect(data = dsum33, mapping = aes(xmin = mx,ymin = my, xmax = (mx+sx), ymax = (my+sy)), color = 'black', fill = NA) +
geom_rect(data = dsum33, mapping = aes(xmin = mx,ymin = my, xmax = (mx-sx), ymax = (my-sy)), color = 'black', fill = NA) +
geom_rect(data = dsum33, mapping = aes(xmin = mx,ymin = my, xmax = (mx-sx), ymax = (my+sy)), color = 'black', fill = NA) +
geom_rect(data = dsum33, mapping = aes(xmin = mx,ymin = my, xmax = (mx+sx), ymax = (my-sy)), color = 'black', fill = NA) +
geom_point(aes(mx, my), colour="red") +
geom_text(
x = mx + 10, y = my + 10,
label = paste("(x,y)"),
color = "red"
) +
geom_curve(
aes(x = mx+10, y = my+11, xend = mx+1, yend = my+1),
arrow = arrow(length = unit(0.03, "npc")),
color = 'red') +
theme_bw() +
theme(
panel.grid = element_blank()
)
