Ich versuche, mehrere Diagramme in einem Diagramm zu erhalten, das eine gemeinsame Legende mit facet_wrap() teilt. Die Diagramme enthalten jeweils 4 Dichteschätzungen, die mit geom_density() erstellt wurden. Dies ist ein minimales Beispiel dafür, wie die Daten aussehen. Eine Dichte wird für jede Schätzungsebene geschätzt, und für jeden Wert von xp wird eine andere Darstellung gezeichnet.Mehrere Diagramme mit mehreren Dichten 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
kann ich ein Grundstück mit den vier Dichten konstruieren:
library('ggplot2')
ggplot(data=esti,aes(x=value,colour=estimator)) + geom_density()
oder zwei Platten mit einer Dichte in jedem:
ggplot(data=esti,aes(x=value)) + geom_density() +facet_wrap(~xp,scales='free_y')
jedoch die beide zusammen nicht funktionieren und Ergebnis in einem Fehler:
> 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"
Ich habe verschiedene Werte für Skalen ausprobiert oder ganz weggelassen, ohne Glück. Ich habe versucht, zu verfolgen, welches Objekt auf "scale_dimension" angewendet wurde, auch ohne Glück. Kann mich jemand aufklären?
Nur eine Vermutung, aber könnte es etwas damit zu tun haben die Tatsache, dass Sie eine Dichte für nur zwei Werte pro Gruppe berechnen? Wenn ich ein ähnliches Diagramm unter Verwendung eines größeren Datensatzes erstelle, erhalte ich diesen Fehler nicht. – joran
Vielen Dank für Ihre Antwort, dass das Problem bei der Verwendung von 'geom_density()' war. Das Problem bleibt gleich, wenn ich 'geom_line (stat = 'dichte')' though ... –
Aber ... das Problem ist das gleiche, nein? Sie berechnen immer noch eine Dichte für nur zwei Werte. – joran