首页 > 解决方案 > ggplot:如何检索轴标签的值?

问题描述

如何在下面的 ggplot 中提取用于标记 y 轴和 x 轴的数字(分别为20, 30, 4010 , 15 ,20 ,25, 30, 35)?

阴谋

来自r-statistics.co

在此处输入图像描述

可重现的代码

# Scatterplot
theme_set(theme_bw())  # pre-set the bw theme.
g <- ggplot(mpg, aes(cty, hwy))
g + geom_count(col="tomato3", show.legend=F) +
  labs(subtitle="mpg: city vs highway mileage", 
       y="hwy", 
       x="cty", 
       title="Counts Plot")

我尝试过查看 的输出str(g),但收效甚微。

标签: rggplot2

解决方案


基于 CPak 的回答,结构略有变化ggplot2_3.0.0。现在可以使用以下方法提取标签:

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"

编辑:ggplot2_3.3.0使用以下标签找到标签:

# 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"


推荐阅读