Hallo
Habe folgendes Problem:
Ich möchte die Wuchshöhe von Pflanzen in Abhängigkeit vom Datum und von der Sorte darstellen. Auf die x-Achse soll das Datum, auf die y-Achse die Wuchshöhe und die Sorte möchte ich anhand der Farbe darstellen. Mein Skript sieht so aus:
ggplot(Rohdaten, aes(x = Datum, y = Höhe..cm., fill = Sorte))+
geom_boxplot()+
scale_x_date(date_labels = "%Y-%m-%d")
Datum ist in der Rohdaten Tabelle bspw. als "12.02.2017" eingetragen. Habe zwei Varianten für den Datentyp probiert:
1) Rohdaten$Datum <- as.POSIXct(Rohdaten$Datum,
format = "%d.%m.%y",
tz = "GMT")
2)Rohdaten$Datum <- as.Date(Rohdaten$Datum)
Wenn ich statt des realen Datums den Termin (character), also statt "12.02.2017" z.B. "Termin 1" nutze, erhalte ich den Boxplot, den ich haben möchte. Wichtig wäre aber das tatsächliche Datum, gerne im Format "Tag.Monat.Jahr". Kann mir dazu jemand weiterhelfen?
Gruß, Flip
ggplot: Datum auf x-Achse plotten
Re: ggplot: Datum auf x-Achse plotten
Mangels eines reproduzierbaren Beispiels, kann ich leider nicht genau sagen woran es bei dir hängt (Kein Datumstyp? group vergessen?, ...).
Aber hier ein Beispiel das funktioniert:
Aber hier ein Beispiel das funktioniert:
Code: Alles auswählen
# some data
df <- expand.grid(date = c("12.02.2017", "13.02.2017", "14.02.2017"),
rep = 1:5,
stringsAsFactors = FALSE)
df$y <- rnorm(nrow(df))
# some cleaning
df$date <- as.Date(df$date, format = '%d.%m.%Y')
# plotting
library(ggplot2)
ggplot(df, aes(x = date, y = y, group = date)) +
geom_boxplot() +
scale_x_date(date_labels = '%d.%m.%Y')
Bitte immer ein reproduzierbares Minimalbeispiel angeben. Meinungen gehören mir und geben nicht die meines Brötchengebers wieder.
Dieser Beitrag ist lizensiert unter einer CC BY 4.0 Lizenz
.
Dieser Beitrag ist lizensiert unter einer CC BY 4.0 Lizenz
.
Re: ggplot: Datum auf x-Achse plotten
Danke, damit kann ich das Problem schon einmal eingrenzen.
Damit ändere ich den Datentyp:
Mein Datum ist dann im Format Date, also "0018-06-12", "0018-06-17" usw.
Den Schritt kann ich noch nicht nachvollziehen:
Der Schritt funktioniert schon einmal:
Problem dabei ist, dass ich die Wuchshöhe (Höhe) auf der y-Achse haben möchte, auf der x-Achse das Datum und die Boxplots meine Sorten representieren sollen. Bei 6 Sorten müsste ich für jedes Datum also 6 Boxplots haben. Jetzt bekomme ich für jedes Datum einen Boxplot, der die Daten aller Sorten nutzt. Auch wenn ich weglasse, passt die Grafik noch nicht.
Mein Datum wird als Factor eingelesen, Format ist dann "12.06.18", "17.06.18" usw.
Damit ändere ich den Datentyp:
Code: Alles auswählen
Rohdaten <- read.csv2("Auswertung_Versuch.csv")
Rohdaten$Datum <- as.Date(Rohdaten$Datum, format = '%d.%m.%Y')
Den Schritt kann ich noch nicht nachvollziehen:
Code: Alles auswählen
df$y <- rnorm(nrow(df))
Code: Alles auswählen
ggplot(Rohdaten, aes(x = Datum, y = Höhe, group = Datum, fill = Sorte))+
geom_boxplot()+
scale_x_date(date_labels = "%d.%m.%Y")
Code: Alles auswählen
group = Datum
Re: ggplot: Datum auf x-Achse plotten
Da du kein reproduzierbares Beispiel mit uns geteilt hast, musste ich mir selbst eins erstellen. Dabei hab ich wohl das kleine DetailDen Schritt kann ich noch nicht nachvollziehen:
übersehen hab. Genau aus dem Grund sollst du, als Fragensteller ja ein solches Beispiel erstellen.die Boxplots meine Sorten representieren sollen
Da ich jetzt aber keine Lust mehr habe, das reproduzierbare Beispiel anzupassen, kann ich nur sagen, dass ich group = interaction(Datum, Sorte) mal probieren würde (=boxplots für jede datums x sorte kombination).
Facets könnte auch was für dich sein...
Bitte immer ein reproduzierbares Minimalbeispiel angeben. Meinungen gehören mir und geben nicht die meines Brötchengebers wieder.
Dieser Beitrag ist lizensiert unter einer CC BY 4.0 Lizenz
.
Dieser Beitrag ist lizensiert unter einer CC BY 4.0 Lizenz
.