Für Lehrzwecke suche ich mehrere Verteilungen auf einem Graphen zu erstellen und zu plotten. Der Code, den ich verwendet haben, dies zu tun ist:Plotten mehrerer Dichteverteilungen auf einem Plot
library(ggplot2)
library(ggfortify)
# Create an initial graph with 1 distribution
p3 <- ggdistribution(dnorm,
seq(-5, 10,length=1000),
colour='blue',
mean=0.15,
sd=0.24,
fill='blue')
# Update p3 with second distribution
p3 <- ggdistribution(dnorm, seq(-5, 10,length=1000),
mean = 1.11,
sd = 0.55,
colour='green',
fill='green',p=p3)
# View p3
p3
Zunächst scheint groß, weil es ein Diagramm mit den beiden Verteilungen erzeugt:
Die Probleme beginnen, wenn ich versuche zu ändern das Aussehen des Graphen.
(1) Wenn ich zuerst versuche, die Y-Achsenskalierung so zu ändern, dass sie von 0 bis 1 statt der Prozentwerte reicht, kann ich das tun, aber den Distributionen passiert etwas . Hier ist der Code ich verwende:
p3 <- p3 + ylim(0,1) + xlim (-2, 6) + labs(title="Plotting Multiple Distributions", x="Mean difference", y="Density")
Und das gibt die dieses Diagramm:
Ratschläge, wie ich die y-Achse verändern kann, ohne die Verteilung zu ruinieren würde sehr geschätzt werden !
(2) Zweitens, wenn ich versuche, 2 Zeilen Code entlang der Achsen hinzufügen mit:
p3 <- p3 + geom_segment(aes(x=0, y=0, xend=0, yend=0.98),
size=1,
arrow = arrow(length = unit(0.4,"cm")))
p3 <- p3 + geom_segment(aes(x=-2, y=0, xend=6, yend=0),
size=1)
... R gibt die folgende Fehlermeldung:
Error in eval(expr, envir, enclos) : object 'ymin' not found
All Ratschläge, wie ich diese Linien hinzufügen könnte, um die Ästhetik des Graphen zu verbessern, wären sehr willkommen.
Vielen Dank im Voraus für Ihre Zeit.
Um die y-Achse zu ändern, sollten Sie 'coord_cartesian (ylim = c (0, 1))' anstelle von 'ylim()' verwenden: Dies ist ein gewöhnliches ggplot-Verwechseln, 'ylim() 'fällt tatsächlich Datenpunkte außerhalb dieses Bereichs, während 'coord_cartesian' die Ansicht wie gewünscht ändert. – Marius
Hallo Marius, danke für deine schnelle Antwort. Ich habe gerade versucht, die 'coord_cartesian (ylim = c (0, 1))' zu verwenden, und es wird in der Zukunft nützlich sein! Aber leider hat es nicht ganz so funktioniert, wie ich es jetzt brauche, weil es die y-Achse nicht von% (mit Obergrenze um 175%) neu skaliert hat, sondern stattdessen von 0 bis 1, was 'ylim() 'tut , obwohl es die Verteilungen zerstört. – confusedpsych