Seite 1 von 1
X-Achse skalieren
Verfasst: Do Nov 18, 2021 1:54 pm
von G-Rizzle
Hi,
Ich habe einen Datensatz, bei dem ich den Temperaturverlauf über viele Tage habe. Den möchte ich plotten. Mein Code sieht folgend aus (provisorisch)
Code: Alles auswählen
ggplot() + geom_line(data = datensatz, mapping = aes(x = Datum, y=Mittelwert, group = 1))
Die Daten auf der X-Achse sind leider nicht lesbar, da zu viele zusammengequetscht sind. Wie kann ich das ganze entzerren? Etwa, dass nur ein Datum die Woche angezeigt wird o.ä.?
Besten Dank schonmal!
Re: X-Achse skalieren
Verfasst: Do Nov 18, 2021 4:03 pm
von bigben
Hallo G-Rizzle,
irgendwas stimmt da nicht und ich tippe auf das falsche Format. Kannst Du bitte mal die Antwort auf
posten? Noch spezieller
Was bezweckst Du mit "group = 1"?
LG,
Bernhard
Re: X-Achse skalieren
Verfasst: Do Nov 18, 2021 11:15 pm
von EDi
scale_x_date ist dein Freund hier
https://ggplot2.tidyverse.org/reference/scale_date.html
Code: Alles auswählen
last_month <- Sys.Date() - 0:29
df <- data.frame(
date = last_month,
price = runif(30)
)
base <- ggplot(df, aes(x = date, y = price)) +
geom_line()
base
base +
scale_x_date(date_breaks = "1 day")
base +
scale_x_date(date_breaks = "1 week")
base +
scale_x_date(date_breaks = "1 month")
Re: X-Achse skalieren
Verfasst: Mi Nov 24, 2021 2:45 pm
von G-Rizzle
bigben hat geschrieben: ↑Do Nov 18, 2021 4:03 pm
Hallo G-Rizzle,
irgendwas stimmt da nicht und ich tippe auf das falsche Format. Kannst Du bitte mal die Antwort auf
posten? Noch spezieller
Was bezweckst Du mit "group = 1"?
LG,
Bernhard
Hi! Danke dir schonmal. Ich glaube tatsächlich, dass am Datenformat etwas nicht passt. Ich lese den Datensatz ein und mache direkt ein DF daraus :
Code: Alles auswählen
df = data.frame(read.csv("temperaturverlauf_KL_september.csv"))
Lasse ihn darauf anzeigen, alles gut;
--> 'list' ?!?
Re: X-Achse skalieren
Verfasst: Mi Nov 24, 2021 3:16 pm
von bigben
Hallo G-Rizzle,
G-Rizzle hat geschrieben: ↑Mi Nov 24, 2021 2:45 pmLasse ihn darauf anzeigen, alles gut;
Und ich glaube nicht, dass Du an der normalen Anzeige erkennst, ob alles gut ist.
Nach typeof(df) hat keiner gefragt. Die Frage lautet, ob Deine Datumsvariable auf der x-Achse als Datum oder als Text eingelesen worden ist.
Gruß,
Bernhard
Re: X-Achse skalieren
Verfasst: Do Nov 25, 2021 3:13 pm
von G-Rizzle
Hi,
Der Typ des Vektors ist Liste, jeder Datumeintrag ist ein Integer. merkwürdig.
Umformatierung klappt wie zu sehen nicht.
Re: X-Achse skalieren
Verfasst: Do Nov 25, 2021 7:13 pm
von bigben
Das ist komisch. Wenn ich so ein Datum mit
read.table einlese, dann ist das nicht vom Typ
integer sondern vom Typ
character und wenn ich es mit
as.Date() umwandle ist es immer noch nicht
integer sondern vom Typ
double:
Code: Alles auswählen
test <- read.table(text = "datum
2021-11-13
2021-11-14
2021-11-15",
header = TRUE)
datum_as_date <- as.Date(test[['datum']], format="%Y-%m-%d")
typeof(datum_as_date)
class(datum_as_date)
Ich schätze mal, ein reproduzierbares Beispiel wäre der schnellste und nachhaltigste Weg zum Erfolg.
LG,
Bernhard
Re: X-Achse skalieren
Verfasst: Fr Nov 26, 2021 8:51 am
von jogo
$Species ist ein Faktor, das Ergebnis von typeof() ist "integer", weil Faktoren intern als integer kodiert werden.
Gruß, Jörg
Re: X-Achse skalieren
Verfasst: Fr Nov 26, 2021 1:16 pm
von bigben
Danke Jörg, da bin ich nicht drauf gekommen
. Dann benutzt G-Rizzle wohl noch ein R Version 3.x und noch keine Version 4. Aktuell ist gerade Version 4.1.2.
Damit entspricht die Situation diesem Beispiel hier:
Code: Alles auswählen
test <- read.table(text = "datum wert
2021-11-01 0.8
2021-11-08 1.5
2021-11-09 1.3
2021-11-10 1.8
2021-11-11 1.8
2021-11-12 2.0
2021-11-13 2.3
2021-11-14 2.4
2021-11-15 2.45",
header = TRUE,
stringsAsFactors = TRUE)
test$datum_as_date <- as.Date(as.character(test$datum), "%Y-%m-%d")
library(ggplot2)
ggplot(test, aes(x = datum_as_date, y = wert)) +
geom_col()
HTH,
Bernhard