2012-09-27 14 views
6

Desidero generare un grafico della densità delle temperature osservate che viene ridimensionato in base al numero di eventi osservati per ciascun punto di dati della temperatura. I miei dati contengono due colonne: temperatura e numero [di osservazioni].Grafico della densità in scala/ponderato in R

In questo momento, ho una trama densità che incorpora solo la frequenza in base alla temperatura:

plot(density(Temperature, na.rm=T), type="l", bty="n") 

Come mi scala questa densità per tenere conto del numero di osservazioni ad ogni temperatura? Per esempio, voglio essere in grado di vedere il grafico della densità della temperatura ridimensionato per mostrare se ci sono osservazioni più grandi/meno per ogni temperatura a temperature più alte/più basse.

Penso che sto cercando qualcosa che potrebbe appesantire le temperature?

risposta

6

E per fare questo in base (utilizzando i dati del daNm):

plot(density(dat$Temperature,weights=dat$Number/sum(dat$Number),na.rm=T),type='l',bty='n') 
5

Penso che tu possa ottenere quello che vuoi passando un argomento weights a density. Ecco un esempio utilizzando ggplot

dat <- data.frame(Temperature = sort(runif(10)), Number = 1:10) 
ggplot(dat, aes(Temperature)) + geom_density(aes(weights=Number/sum(Number))) 
+1

__2017 Aggiornamento: __ l'estetica è stata rinominata 'peso a senza' s', in modo che il l'istruzione di tracciamento diventa: 'ggplot (dat, aes (x = Temperature, weight = Number/sum (Number))) + geom_density()'. –

Problemi correlati