Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Can I create axis labels with vertical-reading text with ggplot?

Tags:

r

ggplot2

enter image description here

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.

like image 337
vhio Avatar asked Sep 01 '25 20:09

vhio


1 Answers

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)

like image 115
danlooo Avatar answered Sep 04 '25 06:09

danlooo