Ho trovato una funzionalità piuttosto confusa in ggplot durante il tentativo di annotare i segmenti su scala log10. Codice seguente produce la trama di seguito:L'annotazione del segmento sulla scala log10 funziona in modo diverso per la fine e l'inizio del segmento?
library(ggplot2)
dat <- data.frame(x = x <- 1:1000, y = log(x))
ggplot(dat, aes(x = x, y = y)) +
geom_line(size = 2) + scale_x_log10() +
annotate("segment", x = 0, xend = log10(100), y = log(100), yend = log(100), linetype = 2) +
annotate("segment", x = log10(100), xend = log10(100), y = 0, yend = log(100), linetype = 2)
considerando che la presente è quello che sto dopo:
ggplot(dat, aes(x = x, y = y)) +
geom_line(size = 2) + scale_x_log10() +
annotate("segment", x = 0, xend = log10(100), y = log(100), yend = log(100), linetype = 2) +
annotate("segment", x = 100, xend = log10(100), y = 0, yend = log(100), linetype = 2)
In altre parole, devo log10 trasformare il punto finale del segmento sull'asse x, ma non l'inizio. Questo comportamento ha una spiegazione logica? Capisco che aes()
does the transformations ... ma in questo caso, le trasformazioni sull'asse x dovrebbero essere uniformi (bene, log10), giusto?
sto lavorando:
R version 3.0.0 (2013-04-03)
Platform: x86_64-w64-mingw32/x64 (64-bit)
ggplot2_0.9.3.1