
I would like to create a plot like in the picture: the x-axis labels should be vertical, with the characters STACKED on top of each other.
I am aware of the rotating function, but I was wondering if this is possible as well.

I would like to create a plot like in the picture: the x-axis labels should be vertical, with the characters STACKED on top of each other.
I am aware of the rotating function, but I was wondering if this is possible as well.
library(tidyverse)
data <- tibble(
name = c("AAA", "BBB"),
value = c(0.3, 0.2)
)
str_stack <- function(x) {
x %>% str_split("") %>% map(~ .x %>% paste(collapse = "\n"))
}
data %>%
ggplot(aes(name, value)) +
geom_col() +
scale_x_discrete(label = str_stack)

Created on 2022-04-05 by the reprex package (v2.0.0)
Using str_replace_all:
str_vert <- function(x) str_replace_all(x, paste0("(.{1})"), "\\1\n")
example:
library(tidyverse)
data <- tibble(name = c("AAA", "BBB"), value = c(0.3, 0.2))
str_vert <- function(x) str_replace_all(x, paste0("(.{1})"), "\\1\n")
ggplot(data, aes(name, value)) +
geom_col() +
scale_x_discrete(label = str_vert)