I am trying to annotate the top two corners of the rectangle on the top most facet only but the following code is not producing the desired output, it is not throwing any error either. It just plots the data without text annotations. Any suggestions?
library(ggplot2)
set.seed(1234)
data <- cbind(1:50, matrix(rnorm(150), 50, 3))
data[,2] <- data[,2] *100
d <- c()
for (i in 2:ncol(data)) {
d <- rbind(d, data[, c(1, i)])
}
fac <-
c(rep("y1", nrow(data)), rep("y2", nrow(data)), rep("y3", nrow(data)))
d <- as.data.frame(cbind(d, fac))
colnames(d)[1:2] <- c("X", "Y")
d$X <- as.numeric(d$X)
d$Y <- as.numeric(d$Y)
d$fac <- as.factor(d$fac)
xa <- 10
xb <- 20
ndata <- dim(d)[1]
p <- ggplot(data = d, aes(x = X, y = Y))
geom_point()
facet_wrap(~ d$fac,
scales = "free_y",
ncol = 1,
strip.position = "left",
labeller = as_labeller(c(y1 = "y1", y2 = "y2", y3 = "y3")))
theme(strip.background = element_blank(),
strip.text.x = element_blank(),
strip.text.y = element_text(size = 15, face = "bold"),
strip.placement = "outside",
axis.text = element_text(size = 12),
axis.title.y=element_blank(),
axis.title.x = element_text(size = 15, face = "bold"))
geom_rect(
xmin = rep(xa, ndata),
xmax = rep(xb, ndata),
ymin = rep(-Inf, ndata),
ymax = rep( Inf, ndata),
alpha = 0.002,
fill = "blue"
)
temp <- d$Y[d$fac == "y1"]
ann_text <- data.frame(x = c(xa, xb),
y = max(temp),
fac = as.factor("y1"),
label = c("E1", "E2"))
p geom_text(data = ann_text, aes(x = x, y = y, label = label), color = 'black')
print(p)
CodePudding user response:
Changing to facet_wrap(~ fac, ...
gets the labels rendered:
library(tidyverse)
set.seed(1234)
data <- cbind(1:50, matrix(rnorm(150), 50, 3))
data[,2] <- data[,2] *100
d <- c()
for (i in 2:ncol(data)) {
d <- rbind(d, data[, c(1, i)])
}
fac <-
c(rep("y1", nrow(data)), rep("y2", nrow(data)), rep("y3", nrow(data)))
d <- as.data.frame(cbind(d, fac))
colnames(d)[1:2] <- c("X", "Y")
d$X <- as.numeric(d$X)
d$Y <- as.numeric(d$Y)
d$fac <- as.factor(d$fac)
xa <- 10
xb <- 20
ndata <- dim(d)[1]
p <- ggplot(data = d, aes(x = X, y = Y))
geom_point()
facet_wrap(~ fac,
scales = "free_y",
ncol = 1,
strip.position = "left",
labeller = as_labeller(c(y1 = "y1", y2 = "y2", y3 = "y3")))
theme(strip.background = element_blank(),
strip.text.x = element_blank(),
strip.text.y = element_text(size = 15, face = "bold"),
strip.placement = "outside",
axis.text = element_text(size = 12),
axis.title.y=element_blank(),
axis.title.x = element_text(size = 15, face = "bold"))
geom_rect(
xmin = rep(xa, ndata),
xmax = rep(xb, ndata),
ymin = rep(-Inf, ndata),
ymax = rep( Inf, ndata),
alpha = 0.002,
fill = "blue"
)
temp <- d$Y[d$fac == "y1"]
ann_text <- data.frame(x = c(xa, xb),
y = max(temp),
fac = as.factor("y1"),
label = c("E1", "E2"))
p geom_text(data = ann_text, aes(x = x, y = y, label = label), color = 'black')
Created on 2022-05-23 by the reprex package (v2.0.1)
Session infosessioninfo::session_info()
#> ─ Session info ───────────────────────────────────────────────────────────────
#> setting value
#> version R version 4.2.0 (2022-04-22)
#> os macOS Big Sur/Monterey 10.16
#> system x86_64, darwin17.0
#> ui X11
#> language (EN)
#> collate en_GB.UTF-8
#> ctype en_GB.UTF-8
#> tz Europe/London
#> date 2022-05-23
#> pandoc 2.17.1.1 @ /Applications/RStudio.app/Contents/MacOS/quarto/bin/ (via rmarkdown)
#>
#> ─ Packages ───────────────────────────────────────────────────────────────────
#> package * version date (UTC) lib source
#> assertthat 0.2.1 2019-03-21 [1] CRAN (R 4.2.0)
#> backports 1.4.1 2021-12-13 [1] CRAN (R 4.2.0)
#> broom 0.8.0 2022-04-13 [1] CRAN (R 4.2.0)
#> cellranger 1.1.0 2016-07-27 [1] CRAN (R 4.2.0)
#> cli 3.3.0 2022-04-25 [1] CRAN (R 4.2.0)
#> colorspace 2.0-3 2022-02-21 [1] CRAN (R 4.2.0)
#> crayon 1.5.1 2022-03-26 [1] CRAN (R 4.2.0)
#> curl 4.3.2 2021-06-23 [1] CRAN (R 4.2.0)
#> DBI 1.1.2 2021-12-20 [1] CRAN (R 4.2.0)
#> dbplyr 2.1.1 2021-04-06 [1] CRAN (R 4.2.0)
#> digest 0.6.29 2021-12-01 [1] CRAN (R 4.2.0)
#> dplyr * 1.0.9 2022-04-28 [1] CRAN (R 4.2.0)
#> ellipsis 0.3.2 2021-04-29 [1] CRAN (R 4.2.0)
#> evaluate 0.15 2022-02-18 [1] CRAN (R 4.2.0)
#> fansi 1.0.3 2022-03-24 [1] CRAN (R 4.2.0)
#> farver 2.1.0 2021-02-28 [1] CRAN (R 4.2.0)
#> fastmap 1.1.0 2021-01-25 [1] CRAN (R 4.2.0)
#> forcats * 0.5.1 2021-01-27 [1] CRAN (R 4.2.0)
#> fs 1.5.2 2021-12-08 [1] CRAN (R 4.2.0)
#> generics 0.1.2 2022-01-31 [1] CRAN (R 4.2.0)
#> ggplot2 * 3.3.6 2022-05-03 [1] CRAN (R 4.2.0)
#> glue 1.6.2 2022-02-24 [1] CRAN (R 4.2.0)
#> gtable 0.3.0 2019-03-25 [1] CRAN (R 4.2.0)
#> haven 2.5.0 2022-04-15 [1] CRAN (R 4.2.0)
#> highr 0.9 2021-04-16 [1] CRAN (R 4.2.0)
#> hms 1.1.1 2021-09-26 [1] CRAN (R 4.2.0)
#> htmltools 0.5.2 2021-08-25 [1] CRAN (R 4.2.0)
#> httr 1.4.3 2022-05-04 [1] CRAN (R 4.2.0)
#> jsonlite 1.8.0 2022-02-22 [1] CRAN (R 4.2.0)
#> knitr 1.39 2022-04-26 [1] CRAN (R 4.2.0)
#> labeling 0.4.2 2020-10-20 [1] CRAN (R 4.2.0)
#> lifecycle 1.0.1 2021-09-24 [1] CRAN (R 4.2.0)
#> lubridate 1.8.0 2021-10-07 [1] CRAN (R 4.2.0)
#> magrittr 2.0.3 2022-03-30 [1] CRAN (R 4.2.0)
#> mime 0.12 2021-09-28 [1] CRAN (R 4.2.0)
#> modelr 0.1.8 2020-05-19 [1] CRAN (R 4.2.0)
#> munsell 0.5.0 2018-06-12 [1] CRAN (R 4.2.0)
#> pillar 1.7.0 2022-02-01 [1] CRAN (R 4.2.0)
#> pkgconfig 2.0.3 2019-09-22 [1] CRAN (R 4.2.0)
#> purrr * 0.3.4 2020-04-17 [1] CRAN (R 4.2.0)
#> R.cache 0.15.0 2021-04-30 [1] CRAN (R 4.2.0)
#> R.methodsS3 1.8.1 2020-08-26 [1] CRAN (R 4.2.0)
#> R.oo 1.24.0 2020-08-26 [1] CRAN (R 4.2.0)
#> R.utils 2.11.0 2021-09-26 [1] CRAN (R 4.2.0)
#> R6 2.5.1 2021-08-19 [1] CRAN (R 4.2.0)
#> readr * 2.1.2 2022-01-30 [1] CRAN (R 4.2.0)
#> readxl 1.4.0 2022-03-28 [1] CRAN (R 4.2.0)
#> reprex 2.0.1 2021-08-05 [1] CRAN (R 4.2.0)
#> rlang 1.0.2 2022-03-04 [1] CRAN (R 4.2.0)
#> rmarkdown 2.14 2022-04-25 [1] CRAN (R 4.2.0)
#> rstudioapi 0.13 2020-11-12 [1] CRAN (R 4.2.0)
#> rvest 1.0.2 2021-10-16 [1] CRAN (R 4.2.0)
#> scales 1.2.0 2022-04-13 [1] CRAN (R 4.2.0)
#> sessioninfo 1.2.2 2021-12-06 [1] CRAN (R 4.2.0)
#> stringi 1.7.6 2021-11-29 [1] CRAN (R 4.2.0)
#> stringr * 1.4.0 2019-02-10 [1] CRAN (R 4.2.0)
#> styler 1.7.0 2022-03-13 [1] CRAN (R 4.2.0)
#> tibble * 3.1.7 2022-05-03 [1] CRAN (R 4.2.0)
#> tidyr * 1.2.0 2022-02-01 [1] CRAN (R 4.2.0)
#> tidyselect 1.1.2 2022-02-21 [1] CRAN (R 4.2.0)
#> tidyverse * 1.3.1 2021-04-15 [1] CRAN (R 4.2.0)
#> tzdb 0.3.0 2022-03-28 [1] CRAN (R 4.2.0)
#> utf8 1.2.2 2021-07-24 [1] CRAN (R 4.2.0)
#> vctrs 0.4.1 2022-04-13 [1] CRAN (R 4.2.0)
#> withr 2.5.0 2022-03-03 [1] CRAN (R 4.2.0)
#> xfun 0.31 2022-05-10 [1] CRAN (R 4.2.0)
#> xml2 1.3.3 2021-11-30 [1] CRAN (R 4.2.0)
#> yaml 2.3.5 2022-02-21 [1] CRAN (R 4.2.0)
#>
#> [1] /Library/Frameworks/R.framework/Versions/4.2/Resources/library
#>
#> ──────────────────────────────────────────────────────────────────────────────