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

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

我想要的是向量
 c(100,200,300)
 c(10,15,20,25,30,35)

分别为 x 个刻度和 y 个刻度 w

有没有办法做到这一点?

非常感谢!

最佳答案

这些值可以在

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

关于r - 访问 ggplot2 中现有绘图的轴刻度向量,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31223818/

10-11 23:31