Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > de.comp.lang.misc > #2070 > unrolled thread

Frage zu R

Started byPeter Schütt <newsgroup@pstt.de>
First post2025-01-24 22:54 +0100
Last post2025-01-31 17:52 +0100
Articles 3 — 2 participants

Back to article view | Back to de.comp.lang.misc


Contents

  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

#2070 — Frage zu R

FromPeter Schütt <newsgroup@pstt.de>
Date2025-01-24 22:54 +0100
SubjectFrage 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]


#2072

FromPeter Schütt <newsgroup@pstt.de>
Date2025-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]


#2074

FromPatrick Rudin <taxi_bs@gmx.ch>
Date2025-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