Mam niektóre dane, które wykazują związek geometryczny, ale mają wartości odstające. Na przykład:Nie można ustawić wartości granicznych za pomocą coord_trans
x = seq(0.1, 1, 0.01)
dat = data.frame(x=x, y=10^x)
dat[50:60, 2] = 10
qplot(x, y, data=dat, geom='line')
chciałbym wykreślić to za pomocą dziennika transformacji i jednocześnie powiększony o część danych. Wiem, że mogę wykonać pierwszą część z coord_trans(y='log10')
lub drugą częścią z coord_cartesian(ylim=c(2,8))
, ale nie udało mi się ich połączyć. Muszę też zachować te punkty, więc po prostu przycinanie ich za pomocą scale_y_continuous(limits=c(2,8))
nie będzie działać dla mnie.
Czy jest jakiś sposób na osiągnięcie tego celu bez konieczności uciekania się do następującego strasznego ataku hakerskiego? Może nieudokumentowany sposób na przekazanie limitów do coord_trans
?
pow10 <- function(x) as.character(10^x)
qplot(x, log10(y), data=dat, geom='line') +
scale_y_continuous(breaks=log10(seq(2,8,2)), formatter='pow10') +
coord_cartesian(ylim=log10(c(2,8)))
Mój zły. Myślałem, że to rozwiązałem, ale nie myślę dziś wprost. – joran
Jeśli spojrzysz na '+ .ggplot', to jasne, że możesz zastosować tylko 1 obiekt proto koordynujący naraz. Dosyć więcej tylko nadpisuj starsze. – James
@ James oczywiście. Próbuję ustawić lims w coord_trans, co jest trudne (niemożliwe?), Chociaż łatwo jest je wykonywać zarówno indywidualnie ... –