我正在尝试提取现有ggplot对象的限制和变换信息。 我已经接近成功,但还需要帮助。 这是我的代码。
但是
data = data.frame(x=c(1,10,100),y=(c(1,10,100)))
p = ggplot(data=data,aes(x=x,y=y)) + geom_point()
p = p + scale_y_log10()
q = ggplot_build(p)
r = q$panel$y_scales
trans.y = (q$panel$y_scales)[[1]]$trans$name
range.y = (q$panel$y_scales)[[1]]$rang
print(trans.y)
给出了我想要的结果。
[1] "log-10"
但是
range.y
是一个古怪的S4对象(见下文)。> print(range.y)
Reference class object of class "Continuous"
Field "range":
[1] 0 2
> unclass(range.y)
<S4 Type Object>
attr(,".xData")
<environment: 0x11c9a0630>
我不太了解S4对象或如何查询其属性和方法。如果我在走弯路,那么更好的解决方案将是很好的 :) 在Matlab中,我可以使用命令“get(gca,'YScale')”和“get(gca,'YLim')”,所以我想知道是否我让这变得比必要的难。