Sto cercando di ottenere diversi grafici su un grafico che condivide una legenda comune utilizzando facet_wrap(). I grafici contengono 4 stime di densità, ciascuna costruita usando geom_density(). Questo è un esempio minimale di come appaiono i dati. Una densità è stimata per ciascun livello di stimatore e viene tracciato un grafico diverso per ciascun valore di xp.Più grafici a più densità in ggplot2
> esti
estimator value xp
1 OLS Oracle 0.35757317 N= 10 T= 100
2 OLS Oracle 0.50540655 N= 10 T= 100
3 OLS Full 0.02276872 N= 10 T= 100
4 OLS Full 0.53616020 N= 10 T= 100
5 Lasso 0.00000000 N= 10 T= 100
6 Lasso 0.30448578 N= 10 T= 100
7 Adaptive Lasso 0.00000000 N= 10 T= 100
8 Adaptive Lasso 0.49949267 N= 10 T= 100
9 OLS Oracle 0.48392914 N= 10 T= 500
10 OLS Oracle 0.53685915 N= 10 T= 500
11 OLS Full 0.50565482 N= 10 T= 500
12 OLS Full 0.61407003 N= 10 T= 500
13 Lasso 0.38342782 N= 10 T= 500
14 Lasso 0.52012928 N= 10 T= 500
15 Adaptive Lasso 0.47951875 N= 10 T= 500
16 Adaptive Lasso 0.53222172 N= 10 T= 500
posso costruire una trama con le quattro densità:
library('ggplot2')
ggplot(data=esti,aes(x=value,colour=estimator)) + geom_density()
o due pannelli con una densità in ciascuna:
ggplot(data=esti,aes(x=value)) + geom_density() +facet_wrap(~xp,scales='free_y')
Tuttavia le due cose insieme non funziona e il risultato in un errore:
> ggplot(data=esti,aes(x=value,colour=estimator)) + geom_density() +facet_wrap(~xp,scales='free_y')
Error in UseMethod("scale_dimension") :
no applicable method for 'scale_dimension' applied to an object of class "NULL"
Ho provato diversi valori per le scale o l'ho omesso del tutto, senza fortuna. Ho provato a rintracciare quale oggetto veniva applicato a 'scale_dimension', ma senza fortuna. Qualcuno può illuminarmi?
Solo una supposizione, ma potrebbe avere qualcosa a che fare con il fatto che stai calcolando una densità solo su due valori per gruppo? Quando creo un grafico simile utilizzando un set di dati più grande, non ottengo quell'errore. – joran
Grazie per la tua risposta, questo è stato il problema quando utilizzi 'geom_density()'. Il problema rimane lo stesso quando provo a usare 'geom_line (stat = 'density')' sebbene ... –
Ma ... il problema è lo stesso, no? Stai ancora calcolando una densità su solo due valori. – joran