2014-09-22 172 views
0

您好我woulds想知道是否有一个简单的方法来提取图形Y轴的数值,比如我有GGPLOT2提取Y轴值

set.seed(20) 
GG <- ggplot(data = data.frame(y=rnorm(20),x=1:20), aes(x=x,y=y))+geom_line() 

enter image description here

我想获得向量: c(“ - 3”,“ - 2”,“ - 1”,“0”,“1”,“2”),可能有简单的函数从数据中的所有值生成它们?或者,也许我可以从GG中提取它们?

编辑

data <- data.frame(y=c(4.99,99.20554),x=c(1,2)) 
ggplot(data=data,aes(x=x,y=y))+geom_line() 
pretty(data$y) 
[1] 0 20 40 60 80 100 

enter image description here

功能pretty()给人不错,但不一样的结果。

回答

2

当显示GG对象时,会计算轴标签位置和文本。您可以build对象并检查:

> build = ggplot_build(GG) 
> build$panel$ranges[[1]]$y.labels 
[1] "-3" "-2" "-1" "0" "1" "2" 
> build$panel$ranges[[1]]$y.major_source 
[1] -3 -2 -1 0 1 2 

现在我怀疑这些东西都是非常内部,可能会改变并与ggplot2新版本打破你的代码。

+1

不会有ggplot2的新版本 – baptiste 2014-09-22 10:28:27

+2

'ggplot3'然后... – Spacedman 2014-09-22 10:34:45