Is there a way to rotate by 90 degrees the column headers with the gt package and make them vertical?
Thanks in advance!
There's not yet a built-in way of doing this but you can use custom CSS to style the table, although you may need to do some additional fine tuning to get it to look ok.
library(gt)
head(mtcars) |>
gt(id = "mygt") |>
cols_align("center", everything()) |>
opt_css(
css = "
#mygt .gt_col_heading {
writing-mode: vertical-rl;
transform: scale(-1);
vertical-align: middle;
font-weight: bold;
}
"
)

It looks like this might not be a feature yet in gt, as it is still in the queue as an enhancement.
Another option would be to use kableExtra (code from here):
library(kableExtra)
library(knitr)
kable(head(mtcars), "html") %>%
kable_styling("striped", full_width = F) %>%
row_spec(0, angle = -90)
Output

Or using gridExtra (code from here):
library(gridExtra)
library(grid)
tt = ttheme_default(colhead=list(fg_params=list(rot=90)))
grid.newpage()
grid.table(head(mtcars), theme=tt)
Output

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With