在ggplot2中访问现有图的轴刻度矢量

时间:2015-07-04 18:18:26

标签: r ggplot2

我想在ggplot的现有图中获得轴刻度值的向量。我知道ggplot对象是一个包含9个元素的列表,我想知道我是否可以从该列表中提取轴刻度的值。例如,如果我制作这个玩具示例:

library(ggplot2)
g=ggplot(data=mtcars,aes(hp,mpg))+geom_point()

enter image description here 我想要的是矢量

 c(100,200,300)
 c(10,15,20,25,30,35)

分别为x刻度和y刻度w

有没有办法解决这个问题?

非常感谢!

1 个答案:

答案 0 :(得分:8)

可以在

中找到这些值
ggbld <- ggplot_build(g)
ggbld$panel$ranges[[1]]$x.major_source
#[1] 100 200 300

ggbld$panel$ranges[[1]]$y.major_source
#[1] 10 15 20 25 30 35

它们也可以在这里存储为字符:

ggbld$panel$ranges[[1]]$x.labels
#[1] "100" "200" "300"
ggbld$panel$ranges[[1]]$y.labels
#[1] "10" "15" "20" "25" "30" "35"

更新

上述内容不适用于ggplot2_3.0.0,但仍可使用以下方式找到该信息:

ggbld <- ggplot_build(g)
ggbld$layout$coord$labels(ggbld$layout$panel_params)[[1]]$x.major_source
ggbld$layout$coord$labels(ggbld$layout$panel_params)[[1]]$x.labels