Ich versuche ein Linien- und Punktdiagramm mit Fehlerbalken zu erstellen. Es hat verschiedene Faktoren, jedoch haben einige Faktoren nur einen Wert. Ich habe herausgefunden, dass, wenn ich position_dodge verwende, einer der Einzelwertfaktoren einen viel breiteren Fehlerbalken im Vergleich zu den anderen Fehlerbalken in den Graphen hat. Irgendwie hat position_dodge Einfluss auf die Breite der Fehlerleiste. Ich habe niemanden gefunden, der das gleiche Problem hatte, also hoffe ich, dass mir jemand helfen kann.ggplot2 position_dodge beeinflusst die Breite des Fehlerbalkens
Die Dummy-Daten:
require(ggplot2)
x <- c(1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,3,3,5)
y <- c(3,5,6,3,5,3,5,6,2,6,3,7,3,6,2,1,5,8,7)
se <- x*0.2
treatment <- c("A", "B","C", "D","A", "B","C", "D","A", "B","C", "D","A", "B","C", "D","E", "F", "G")
data <- data.frame(x, y, se ,treatment)
data$treatment <- as.factor(data$treatment)
Zuerst ein Grundstück ohne position_dodge - alles ist in Ordnung
# Without position dodge
myplot <- ggplot(data, aes(x=x, y=y, group= treatment, fill = treatment, colour = treatment)) +
geom_line(stat="identity", size = 1) +
geom_point(stat="identity", size = 3, shape = 21) +
geom_errorbar(aes(ymin = y-se, ymax = y+se), width = 0.2)
myplot
Jetzt ein Grundstück mit Position ausweichen:
# With position dodge
myplot <- ggplot(data, aes(x=x, y=y, group= treatment, fill = treatment, colour = treatment)) +
geom_line(stat="identity", size = 1, position=position_dodge(width=0.2)) +
geom_point(stat="identity", size = 3, shape = 21, position=position_dodge(width=0.2)) +
geom_errorbar(aes(ymin = y-se, ymax = y+se), width = 0.2, position=position_dodge(width=0.2))
myplot
Wie Sie sehen können, hat die Fehlerleiste auf der rechten Seite eine viel größere Breite im Vergleich zu den anderen Fehlerbalken. Dies liegt wahrscheinlich daran, dass für diesen Punkt keine überlappenden x-Variablen vorhanden sind und die Fehlerbalken eine normale Größe haben können. Ich würde immer noch gerne wissen, wie ich die Fehlerbalken auf die gleiche Breite bekommen kann.
Vielleicht relevantes Thema: https://github.com/tidyverse/ggplot2/issues/1068 – zx8754
Ja wohl, wenn man sich die zweite Kurve aussehen, werden die Punkte bei x = 3 auch eine kleinere Fehlerleiste. Dies liegt wahrscheinlich daran, dass die Breite der Fehlerleiste durch die Anzahl der Gruppen bestimmt wird. – Marinka
Ja, der Speicherplatz wird von der Anzahl der Punkte geteilt, und die horizontale Linie wird kürzer. Lösung könnte sein, manuelles Ausweichen einzuführen, zum Beispiel "x = 1" ist für 4 Punkte, "x = c (1, 1.02, 1.04, 1.06)", dann entferne Auswahloption. – zx8754