2016-04-03 7 views
0

ich ein Plotten Problem mit Kurven habe, wenn MixtoolsÄndern der Standardfarben, wenn die Handlung Funktion des R-Paket Mixtools mit

Unter Verwendung den folgenden R-Code

require(mixtools) 
x <- c(rnorm(10000,8,2),rnorm(10000,18,5)) 
xMix <- normalmixEM(x, lambda=NULL, mu=NULL, sigma=NULL) 
plot(xMix, which = 2, nclass=25) 

ich ein schönes Histogramm, mit der 2 Normalkurven, geschätzt aus dem überlagerten Modell.

Das Problem ist mit den Standardfarben (d. H. Rot und grün), die ich für eine Publikation ändern muss, um schwarz und grau zu sein. Ich

Eine Möglichkeit gedacht, um dies zu tun war zuerst das Histogramm

hist(xMix$x, freq=FALSE, nclass=25) 

zu erzeugen und dann die Linien fügen Sie die „Kurve“ -Funktion.

....... aber ich meinen Weg verloren, und es

nicht lösen konnte ich für alle Hinweise oder die tatsächliche Lösung

dank

PS dankbar wäre. Beachten Sie, dass es eine Alternative Work-around für dieses Problem ggplot mit: Any suggestions for how I can plot mixEM type data using ggplot2 aber aus verschiedenen Gründen die Basis Grafiken Ich brauche zu halten mit

Antwort

0

das Problem ein bisschen mehr Gedanken zu machen, ich es geschafft, das Problem neu zu formulieren und fragen die Frage, in einem viel direkteren Weg

Using user-defined functions within "curve" function in R graphics

dies lieferte zwei schöner Lösungen, wie die „Kurve“ Funktion verwenden Normalverteilungen durch die Mischung Modellierung erzeugt zu ziehen.

Die allgemeine Antwort ist daher, die "hist" -Funktion zu verwenden, um ein Histogramm der Rohdaten zu zeichnen, dann die "Kurven" -Funktion (einschließlich der sdnorm-Funktion), um jede Normalverteilung zu zeichnen. Dies gibt die totale Kontrolle über die Farben (und möglicherweise jeden anderen Grafikparameter).

Und nicht zu vergessen - das ist, wo ich den Code für die Funktion sdnorm bekam - und andere nützliche Einsichten

Any suggestions for how I can plot mixEM type data using ggplot2

Dank wie immer zu Stackoverflow und die Mitwirkenden, die solche hilfreichen Ratschläge geben.