Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > de.comp.lang.misc > #2070 > unrolled thread
| Started by | Peter Schütt <newsgroup@pstt.de> |
|---|---|
| First post | 2025-01-24 22:54 +0100 |
| Last post | 2025-01-31 17:52 +0100 |
| Articles | 3 — 2 participants |
Back to article view | Back to de.comp.lang.misc
Frage zu R Peter Schütt <newsgroup@pstt.de> - 2025-01-24 22:54 +0100
Re: Frage zu R Peter Schütt <newsgroup@pstt.de> - 2025-01-26 23:15 +0100
Re: Frage zu R Patrick Rudin <taxi_bs@gmx.ch> - 2025-01-31 17:52 +0100
| From | Peter Schütt <newsgroup@pstt.de> |
|---|---|
| Date | 2025-01-24 22:54 +0100 |
| Subject | Frage zu R |
| Message-ID | <vn126h$e6s2$1@solani.org> |
Hallo, ich mache mir simple Linien-Diagramme mit R, was auch ganz funktioniert, aber ich würde gerne die Werte, die automatisch auf der X-Achse gezeigt werden, beeinflussen. Ich habe Verbrauchswerte von meinem Haus von 2017 bis heute mit dem Erfassungsdatum auf der X-Achse auf einen Tag kumuliert. Automatisch zeigt er nur jedes zweite Jahr an. Ich hätte gerne, dass er jedes Jahr anzeigt und die Monate als Striche. Ich bin noch ein Anfänger in R, hätte tatsächlich aber erwartet, dass das nicht schwer ist, doch suche ich schon zwei Stunden im Netz. Danke für alle Hinweise und Tips. Viele Grüße Peter Schütt
[toc] | [next] | [standalone]
| From | Peter Schütt <newsgroup@pstt.de> |
|---|---|
| Date | 2025-01-26 23:15 +0100 |
| Message-ID | <vn6c5s$gqf7$1@solani.org> |
| In reply to | #2070 |
Hallo,
es hat geklappt, vielen Dank.
Das einzige, was neben dem komischen Sprachstil seltsam war, war, dass
ich als Startwert den 1.1.2017 konstant nehmen musste.
>>>>
# start_date <- as.Date(min(netzbezug_result$measure_day))
end_date <- as.Date(max(netzbezug_result$measure_day))
# start_date als from führt zur einer falschen Skala
jahre <- seq(from=as.Date("2017-01-01"), to=end_date, by="year")
monate <- seq(from=as.Date("2017-01-01"), to=end_date, by="month")
axis(1, at=jahre, labels=format(jahre, "%Y"))
axis(1, at=monate, labels=FALSE, tcl=-0.2)
<<<<<
Wenn ich das minimale Datum (hier start_date) berechnet habe (war August
2017), dann war die Skala verschoben, was ich nicht verstanden habe.
Aber egal: Ich habe eine funktionierende Lösung.
Viele Grüße
Peter Schütt
Am 26.01.25 um 11:13 schrieb Stefan Ram:
> =?UTF-8?Q?Peter_Sch=C3=BCtt?= <newsgroup@pstt.de> schrieb oder zitierte:
>> Ich hätte gerne, dass er jedes Jahr anzeigt und die Monate als Striche.
>
> (Ich habe selber keine Ahnung von "R". Daher konnte ich die folgenden
> Tips nicht überprüfen!)
>
> Okay, hier kommt's für dich als R-Anfänger:
>
> Um deine X-Achse im Liniendiagramm richtig cool zu gestalten,
> brauchste 'ne kleine Trickkiste mit der axis() Funktion.
>
> Lass mich Dir zeigen, wie du das easy hinbekommst!
>
> Erst mal bastelst Du Dir ein Grunddiagramm ohne X-Achse:
>
> R
>
> plot(deine_daten$Datum, deine_daten$Verbrauch, type="l", xaxt="n", xlab="Jahr", ylab="Verbrauch")
>
> Dann definierst du die Jahre - ganz entspannt:
>
> R
>
> jahre <- seq(from=as.Date("2017-01-01"), to=max(deine_daten$Datum), by="year")
>
> Nu kommn die Jahresbeschriftungen:
>
> R
>
> axis(1, at=jahre, labels=format(jahre, "%Y"))
>
> Und zum Schluß noch die feinen Monatsstriche:
>
> R
>
> monate <- seq(from=as.Date("2017-01-01"), to=max(deine_daten$Datum), by="month")
> axis(1, at=monate, labels=FALSE, tcl=-0.2)
>
> Der ganze Zauber sieht dann so aus:
>
> R
>
> # Basis-Diagramm wird gezaubert
> plot(deine_daten$Datum, deine_daten$Verbrauch, type="l", xaxt="n", xlab="Jahr", ylab="Verbrauch")
>
> # Jahre und Monate werden festgelegt
> jahre <- seq(from=as.Date("2017-01-01"), to=max(deine_daten$Datum), by="year")
> monate <- seq(from=as.Date("2017-01-01"), to=max(deine_daten$Datum), by="month")
>
> # Jahresbeschriftungen kommen drauf
> axis(1, at=jahre, labels=format(jahre, "%Y"))
>
> # Monatsstriche werden gesetzt
> axis(1, at=monate, labels=FALSE, tcl=-0.2)
>
> Keine Sorge - das sieht am Ende viel komplizierter aus, als
> es ist! Mit 'nem Schluck Kaffee und bißchen Übung kriegste
> das locker hin.
>
> Wichtig noch: Wenn deine Daten noch nicht im Datumsformat sind,
> mußte die erst mit as.Date() umwandeln. Aber keine Angst -
> auch das ist nicht die Raketenwissenschaft!
>
>
[toc] | [prev] | [next] | [standalone]
| From | Patrick Rudin <taxi_bs@gmx.ch> |
|---|---|
| Date | 2025-01-31 17:52 +0100 |
| Message-ID | <m04df8F94mfU1@mid.individual.net> |
| In reply to | #2070 |
Peter Schütt wrote: > Ich bin noch ein Anfänger in R, hätte tatsächlich aber erwartet, dass > das nicht schwer ist, doch suche ich schon zwei Stunden im Netz. Auch wenn Du bereits eine Lösung hast, dennoch der Hinweis: Ich benutze kein Base-R, weil ich die Syntax schröcklich(tm) finde. Bei der Erweiterung Tidyverse (diverse Pakete) nimmt man für das Plotten ggplot, wo Daten und Aussehen sauber getrennt sind. Das erfordert wie alles eine gewisse Eingewöhnung, aber auf die lange Sicht lässt es sich damit einfach besser arbeiten. https://r4ds.had.co.nz/data-visualisation.html Zu Deinem Punkt dann insbesondere https://ggplot2-book.org/scales-position Das Cheatsheet dazu ist auch immer nützlich, ganz unten sind auch weitere gute Einführungen beschrieben: https://ggplot2.tidyverse.org/ Gruss Patrick
[toc] | [prev] | [standalone]
Back to top | Article view | de.comp.lang.misc
csiph-web