ggplot: How to retrieve values for axis labels?

Building on CPak's answer, the structure has changed slightly for ggplot2_3.0.0. Labels can now be extracted with:

ggplot_build(g)$layout$panel_params[[1]]$y.labels
#[1] "20" "30" "40" 
ggplot_build(g)$layout$panel_params[[1]]$x.labels
#[1] "10" "15" "20" "25" "30" "35"

EDIT: As of ggplot2_3.3.0 the labels are found using:

# check package version
utils::packageVersion("ggplot2")

y_labs <- ggplot_build(g)$layout$panel_params[[1]]$y$get_labels()
y_labs[!is.na(y_labs)]
#[1] "20" "30" "40"
x_labs <- ggplot_build(g)$layout$panel_params[[1]]$x$get_labels()
x_labs[!is.na(x_labs)]
#[1] "10" "15" "20" "25" "30" "35"


Extending on the older post - they can be found with

ggplot_build(g)$layout$panel_ranges[[1]]$y.labels
# "20" "30" "40"
ggplot_build(g)$layout$panel_ranges[[1]]$x.labels
# "10" "15" "20" "25" "30" "35"

EDIT: works with ggplot2_2.2.1 but not ggplot2 version 3.0.0 - thanks to zx8754 and nilambara for pointing this out

Tags:

R

Ggplot2