Esiste un modo generale per disegnare densità (grafici di violini) o istogrammi che mostrano la distribuzione di lungo una curva liscia (x,y)
? Io uso questo approccio per mostrare la distribuzione marginale di x
quando ci sono più gruppi (ad esempio, curve diverse su un pannello, delineate da colori diversi).Disegno di istogrammi o densità lungo curve uniformi utilizzando ggplot2
Ecco un esempio utilizzando funzione il pacchetto di Hmisc
plsmo
per ottenere curve loess stratificate e spike istogrammi mostra la densità -specific dati sex
per age
.
require(Hmisc)
set.seed(1)
age <- rnorm(500, 50, 15)
y <- sample(0:1, 500, TRUE)
sex <- sample(c('female','male'), 500, TRUE)
plsmo(age, y, group=sex, col=1:2,
datadensity=TRUE, scat1d.opts=list(nhistSpike=20))
Come si specifica la curva morbida? Sarebbe utile avere un [esempio riproducibile] (http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example) per vedere come appare il tuo input. – MrFlick
Non riesco a capire cosa sta valutando e tracciando plsmo. Avrei immaginato che stavi descrivendo una densità 1-d: 'densityplot (~ age, groups = sex, data = dat)' per cui la controparte ggplot2 sarebbe: 'p <- ggplot (data = dat, aes (x = y, y = età, gruppo = sesso)) + geom_violin(); print (p) ' –
' plsmo' sta stimando la relazione tra x e y usando 'lowess()', calcolando quindi gli elementi di un istogramma ad alta risoluzione per la distribuzione della condizione 'x' sulla variabile di raggruppamento e proiettando l'istogramma sul Curve 'lowess'. –