1+
2+
3+ # ' xlim for gsplot
4+ # '
5+ # ' get the xlim for views in gsplot object
6+ # '
7+ # ' @param object a gsplot object
8+ # ' @param side which side(s) to use
9+ # '
10+ # ' @export
11+ xlim <- function (object , side ) UseMethod(" xlim" )
12+
13+ # ' @export
14+ xlim.gsplot <- function (object , side = NULL ){
15+
16+ if (! is.null(side ))
17+ views <- object [views_with_side(views(object ), side )]
18+ else
19+ views <- views(object )
20+ names = unname(sapply(views , function (x ) paste0(' side.' ,x $ window $ side [1 ])))
21+ unique(lapply(views , function (x ) x $ window $ xlim )) %> %
22+ setNames(unique(names ))
23+ }
24+
25+ # ' ylim for gsplot
26+ # '
27+ # ' get the ylim for views in gsplot object
28+ # '
29+ # ' @param object a gsplot object
30+ # ' @param side which side(s) to use
31+ # '
32+ # ' @export
33+ ylim <- function (object , side ) UseMethod(" ylim" )
34+
35+ # ' @export
36+ ylim.gsplot <- function (object , side = NULL ){
37+ if (! is.null(side ))
38+ views <- object [views_with_side(views(object ), side )]
39+ else
40+ views <- views(object )
41+ names = unname(sapply(views , function (x ) paste0(' side.' ,x $ window $ side [2 ])))
42+ unique(lapply(views , function (x ) x $ window $ ylim )) %> %
43+ setNames(unique(names ))
44+ }
45+
46+ # ' log for gsplot
47+ # '
48+ # ' get the log for views in gsplot object
49+ # '
50+ # ' @name logged
51+ # ' @param object a gsplot object
52+ # ' @param side which side(s) to use (returns logical)
53+ # ' @export
54+ logged <- function (object , side ) UseMethod(' logged' )
55+
56+ # ' @rdname logged
57+ # ' @export
58+ logged.gsplot <- function (object , side = NULL ){
59+
60+ is.logged <- function (window , side ){
61+ log = window $ log
62+ if (side %% 2 == 0 ){ # is y
63+ grepl(pattern = ' y' ,log )
64+ } else {
65+ grepl(pattern = ' x' ,log )
66+ }
67+ }
68+ if (! is.null(side )){
69+ sapply(side , function (x ) is.logged(object [[views_with_side(views(object ), side = x )[1 ]]]$ window , x ))
70+ } else {
71+ names = unname(sapply(views(object ), function (x ) paste0(' side.' ,paste(x $ window $ side [1 : 2 ],collapse = ' .' ))))
72+ lapply(views(object ), function (x ) x $ window $ log ) %> %
73+ setNames(names )
74+ }
75+ }
0 commit comments