Ich habe einen Datensatz von 600 Befragten. Ich habe für jeden der 600 Befragten in 5 Jahren - 2013, 2014, 2015, 2016, 2017 - einige Indikatorwerte. Außerdem habe ich für jeden Befragten eine Stadtsäule. Ich möchte ein Diagramm erstellen, in dem ich den Indikator für jeden der 600 Befragten mit einem Liniendiagramm zeichne - ein Liniendiagramm für jeden Befragten, so dass die Y-Achse einen Indikatorwert hat und die X-Achse Jahre hat. Ich habe die Farben von Liniendiagrammen nach Städten getrennt. Außerdem möchte ich eine separate Median-Indikatorlinie hinzufügen, so dass es für die Befragten für jede Stadt eine Median-Linie gibt. Ich konnte eine konsolidierte Medianlinie erstellen, erhalte jedoch einen Fehler, wenn ich mehrere Mediane plotten möchte. Hier ist der Code ich verwende -Plotten mehrerer Mediane in einem einzigen Diagramm von Panel-Daten
library(ggplot2)
library(dplyr)
library(tidyr)
library(magrittr)
sample_no <- c(1:600)
city <- c(rep("A",150), rep("B",250), rep("C", 200))
indicator_2013 <- runif(600, min=0, max=1000)
indicator_2014 <- runif(600, min=0, max=1000)
indicator_2015 <- runif(600, min=0, max=1000)
indicator_2016 <- runif(600, min=0, max=1000)
indicator_2017 <- runif(600, min=0, max=1000)
df <- data.frame(sample_no, city, indicator_2013, indicator_2014, indicator_2015, indicator_2016, indicator_2017)
df1 <- df %>%
gather(indicator_2013, indicator_2014, indicator_2015, indicator_2016, indicator_2017, key="Year", value = "Indicator")
df1 %>%
ggplot(aes(x=Year, y=Indicator, color=as.factor(city))) +
geom_line(aes(group = sample_no), alpha = .5, size = 0.7) +
labs(col = "City") +
stat_summary(aes(y = Indicator, group =1), fun.y=median, geom = "line", color = "black", size = 1)
Hinweis: Dies ist nur Dummy-Daten so Graphen symmetrisch ist ... Ich habe versucht, mit dem folgenden Code für mehrere Mittellinien machen aber ich habe den Fehler - Fehler: Ästhetik
, Größestat_summary(aes(y = Indicator, group =1), fun.y=median, colour=city, geom="line", size =1)
ich sah mich um für die Dokumentation und andere R Blog-Beiträge Farbe, aber etwas nützliches fand nicht: entweder Länge 1 oder die gleiche wie die Daten (5) sein.
Danke das funktioniert perfekt! Ich hatte zwei Follow-up-Fragen - 1. Welche unterschiedlichen Werte nimmt die Gruppe in stat_summary ein? Wann wird 1 verwendet? Ich schaute nach oben, aber das sagt nicht viel. 2. In der Grafik, die mit diesem Code erzeugt wird, wird viel Platz zwischen der Koordinate (0,0) und der ersten x-asix-Tickbeschriftung vergeudet, ebenso zwischen der letzten x-asis-Marke und dem Ende des Graphen. Wie kann dies reduziert werden? Vielleicht sollte dies ein weiterer Beitrag sein, aber ich habe eine Menge von ggplot-Dokumentation gesucht, aber nichts gefunden. – user3816784
group = 1 zeigt an, dass Sie eine einzige Linie wünschen, die alle Punkte verbindet –
Ich habe Ihre zweite Frage in der Hauptantwort oben beantwortet –