[R] lattice log scale labels.

Gerrit Draisma gdr@|@m@ @end|ng |rom x@4@||@n|
Thu Sep 5 19:01:24 CEST 2024


Thanks Greg and Bert for solving my problem.
This gives what I want:
----------------

myticks <- 2^(3*(0:11))
mylabels <- parse(text=paste0("2^",log2(myticks)))

xyplot(c+t+u~n,data=x,type="b", xlab="Size", ylab="Number of tangles",
   scales=list(x=list(at=4*(1:9)),y=list(log=2,at=myticks,labels=mylabels),
    auto.key=list(columns=3,text=c("(choose m n)","tangles","unique
       tangles"), points=FALSE,lines=TRUE)))
----------------
Solved!
Gerrit

Op 05-09-2024 om 16:54 schreef Bert Gunter:
> Do the "at" and "labels" components of the "scales" list argument to 
> xyplot not do what you want?
> 
> Cheers,
> Bert
> 
> On Thu, Sep 5, 2024 at 4:05 AM Gerrit Draisma <gdraisma using xs4all.nl 
> <mailto:gdraisma using xs4all.nl>> wrote:
> 
>     Dear R-helpers,
> 
>     In the plot below I would like to have labels at positions 2^(3*(0:10)),
>     and keep the labels in the exponential format.
>     I tried using yscale.components.default.
> 
>     *This* gives the right format of the labels:
>     --------
>       > yscale.components.default(lim= c(0,30),log=2)
>     ....
>     $num.limit
>     [1]  0 30
>     ...
>     [1]  0  5 10 15 20 25 30
>     ...
>     $left$labels$labels
>     [1] "2^0"  "2^5"  "2^10" "2^15" "2^20" "2^25" "2^30"
>     --------
> 
>     and *this* gives the right locations
>     --------
>       > yscale.components.default(lim= c(0,30),log=2,at=2^(3*(0:10)))
>     $num.limit
>     [1]  0 30
>     ...
>        [1]  0  3  6  9 12 15 18 21 24 27 30
>     ...
>     $left$labels$labels
>        [1] "1"          "8"          "64"         "512"        "4096"
>        [6] "32768"      "262144"     "2097152"    "16777216"   "134217728"
>     [11] "1073741824"
>     --------
> 
>     How can I get the format in the first example at the locations of the
>     second?
> 
>     Thanks,
>     Gerrit
> 
>     -------------
>     x <- read.csv(text="
>     n,c,t,u
>     4,1,2,1
>     8,28,8,1
>     12,495,42,3
>     16,8008,256,7
>     20,125970,1680,31
>     24,1961256,11640,138
>     28,30421755,83776,808
>     32,471435600,620576,4956
>     36,7307872110,4700880,33719")
>     library(lattice)
>     yscale.components.log2 <- function(...){
>           ans <- yscale.components.default(...)
>           ans$left$labels$labels <-
>               parse(text = ans$left$labels$labels)
>           ans
>     }
> 
> 
>     # pdf("tangle_mathFig06.pdf")
>     xyplot(c+t+u~n,data=x,type="b", xlab="Size", ylab="Number of tangles",
>          scales=list(x=list(at=4*(1:9)),y=list(log=2)),
>          yscale.components=yscale.components.log2,
>          auto.key=list(columns=3,text=c("(choose m n)","tangles","unique
>     tangles"),
>          points=FALSE,lines=TRUE))
>     # dev.off()
> 
>     ______________________________________________
>     R-help using r-project.org <mailto:R-help using r-project.org> mailing list --
>     To UNSUBSCRIBE and more, see
>     https://stat.ethz.ch/mailman/listinfo/r-help <https://stat.ethz.ch/
>     mailman/listinfo/r-help>
>     PLEASE do read the posting guide https://www.R-project.org/posting-
>     guide.html <https://www.R-project.org/posting-guide.html>
>     and provide commented, minimal, self-contained, reproducible code.
>



More information about the R-help mailing list