Czy mogę podać parametr funkcji ggpairs
w pakiecie GGally, aby użyć skali dziennika dla niektórych, a nie wszystkich zmiennych?Czy mogę powiedzieć, że ggpairs używa skali logowania?
Odpowiedz
Nie można podać parametr jako takiego (z powodów jest to, że funkcja tworzenia Wykresy rozrzutu predefiniowane jest bez skali, patrz ggally_points
), ale można zmienić skalę potem używając getPlot
i putPlot
. Na przykład:
custom_scale <- ggpairs(data.frame(x=exp(rnorm(1000)), y=rnorm(1000)),
upper=list(continuous='points'), lower=list(continuous='points'))
subplot <- getPlot(custom_scale, 1, 2) # retrieve the top left chart
subplotNew <- subplot + scale_y_log10() # change the scale to log
subplotNew$type <- 'logcontinuous' # otherwise ggpairs comes back to a fixed scale
subplotNew$subType <- 'logpoints'
custom_scale <- putPlot(custom_fill, subplotNew, 1, 2)
Dzięki za rozwiązanie, dobrze jest wiedzieć, jak manipulować wykresami. Spróbuję tego później; na razie wprowadzenie nowych logowanych zmiennych wydaje się łatwiejsze. –
Jest to zasadniczo taka sama odpowiedź jak Jean-Robert, ale wygląda na znacznie prostszą (przystępną). Nie wiem, czy jest to nowa funkcja, ale nie wygląda na to, że musisz już używać getPlot
lub putPlot
.
custom_scale[1,2]<-custom_scale[1,2] + scale_y_log10() + scale_x_log10()
Oto funkcja, aby zastosować go w całej wielkiej matrycy. Podaj liczbę wierszy na wykresie i nazwę działki.
scalelog2<-function(x=2,g){ #for below diagonal
for (i in 2:x){
for (j in 1:(i-1)) {
g[i,(j)]<-g[i,(j)] + scale_x_continuous(trans='log2') +
scale_y_continuous(trans='log2')
} }
for (i in 1:x){ #for the bottom row
g[(x+1),i]<-g[(x+1),i] + scale_y_continuous(trans='log2')
}
for (i in 1:x){ #for the diagonal
g[i,i]<-g[i,i]+ scale_x_continuous(trans='log2') }
return(g) }
Aby wyjaśnić, ta opcja działa tak jak ggplot2 versoin 2.0.0 i GGally version 1.0.1 – Jthorpe
ten kod nie działa dla mnie dla wartości innych niż 2. i dlaczego "g [(x + 1), i]", nie tylko "g [x, i]"?!? –
Czy próbowałeś w tym celu użyć funkcji aes()? Nic nie widzę na stronach pomocy sugerujących, że w ggpairs jest jakaś specjalna funkcja logowania, ale być może zakładano, że użyjesz typowych konwencji ggplot. –