Ci scusiamo per il fatto che questo esempio non è eccezionale ma evidenzia il punto.geom_smooth() - e ridimensionamento dell'asse y, perdita di dati dall'attenuazione
mtcars$tran <- factor(mtcars$am, labels=c("Man","Aut"))
ggplot(mtcars, aes(x=hp, y= mpg, group=tran)) + geom_smooth(aes(colour=tran))
ggplot(mtcars, aes(x=hp, y= mpg, group=tran)) + geom_point(aes(colour=tran))
ggplot(mtcars, aes(x=hp, y= mpg, group=tran)) + geom_point(aes(colour=tran)) + geom_smooth(aes(colour=tran))
ggplot(mtcars, aes(x=hp, y= mpg, group=tran)) + geom_smooth(aes(colour=tran)) + scale_y_continuous(limits=c(12,60))
Quello che voglio fare è disegnare una curva levigata ma 'zoom in' limitando la scala dell'asse y. Tuttavia sembra che ggplot escluda qualsiasi dato al di fuori dei limiti di scala quando si elaborano le curve levigate. Sì, questo sembra logico, ma come potrei vedere ciò che voglio vedere? Nei miei dati reali, i valori (grezzi) sono compresi tra 5 e 14, ma le curve levigate si trovano interamente tra 7 e 9. Quindi c'è un sacco di spazio vuoto in alto. Quando lo imposto in c (7,9) non usa più punti al di fuori di tale intervallo per calcolare la curva liscia, e quindi ottengo una curva diversa.
Non posso fornire dati ma in questo esempio è possibile visualizzarli. Osserva come nell'ultimo grafico, due punti vengono eliminati e l'ultima metà della curva "Uomo" non è uguale a quella del grafico originale.
Domanda
Se scale_y_continuous limita i valori dei dati che vengono utilizzati per costruire la curva levigata (logico), come si può disegnare la curva con tutti i dati e poi 'zoom in' su di esso (WRT la asse y).
Fatemi sapere se questo non è chiaro.
Grazie
Lo zoom predefinito di 'geom_smooth' sta per cambiare, da quanto ho capito, nella prossima versione (che dovrebbe uscire intorno a Natale/Nuovo Anni). Vedi qui, ad esempio: http: //stackoverflow.com/questions/7857020/ggplot2-zooming-in-on-geom-smooth-automatically-using-coord-cartesian –