Grafische Analyse von Aktivitäten

Wie erstelle ich Grafiken, was ist zu beachten?

Moderatoren: EDi, jogo

Eliomys
Beiträge: 20
Registriert: Fr Feb 26, 2021 12:23 pm

Grafische Analyse von Aktivitäten

Beitrag von Eliomys »

Servus,

zuallererst hoffe ich, dass ich hier im richtigen Bereich des Forums poste. Über die Suche habe ich zu meinem Problem leider nichts finden können, deshalb stelle ich die Frage hier. Sollte ich doch etwas übersehen haben und die Frage ist anderweitig bereits beantwortet worden, entschuldige ich mich vorab! :-)

Ich schreibe derzeit meine Bachelor Arbeit und versuche, durch die Auswertung von EXIF-Daten aus Wildkameras, Erkenntnisse über Tagesphänologien und Tagesrhythmik bestimmter Tiere zu erlangen.
Für den grafisch/statistischen Teil meiner Arbeit wollte ich lieber Rstudio statt Excel verwenden. Ich bin wahnsinnig fasziniert von R und habe ernsthaftes Interesse daran, mich weiter einzuarbeiten aber unter dem gegenwärtigen Zeitdruck ist das leider alles etwas leichter gesagt als getan.

Ich habe bereits mit Hilfe von R fertige, saubere Datentabellen erstellen können. Darin enthalten sind beispielsweise spezifische Daten zu jedem Foto. Datum und Uhrzeit eines jeden Fotos, die abgelichtete Spezies, die Mondphase am Tag der Aufnahme und die Zeiten des Sonnenaufgangs und des -untergangs fein säuberlich im CSV-Format. Für mehrere Standorte und Untersuchungsgebiete existiert je eine solche Tabelle.

All diese Daten möchte in nun in Diagramme bringen und miteinander vergleichen.

Hier mal zwei Beispiele:

Die Kameras waren über mehrere Monate aktiv und ich möchte den Zusammenhang zwischen Mondphase und Aktivitäten der Tiere untersuchen. Meine Idee war es, die Mondphasen für den gesamten Untersuchungszeitraum (je Standort) als Sinuskurve durch ein Diagramm laufen zu lassen. Die Bilder (bzw. Auslösungen) werden als Punkte in diesem Diagramm dargestellt. Letztendlich geht es darum, grafisch darzustellen, dass bestimmte Tiere bei Vollmond weniger aktiv sind als bei Neumond, weil die Wahrscheinlichkeit entdeckt und getötet zu werden höher ist.

Meine andere Idee für ein nachtaktives Tier ist, dass ich ein Diagramm erstelle x=Datum und y=Uhrzeit und den Sonnenaufgang beziehungsweise -untergang als jeweils eigene Kurve darstelle. Von 0 Uhr aufsteigend bis erneut 0 Uhr auf der Y-Achse und das Datum von Anfang bis Ende der Untersuchung auf der X-Achse. Demnach wäre im unteren Bereich des Diagramms die Kurve für den Sonnenaufgang und im oberen Bereich des Diagramms die Kurve für den Sonnenuntergang. Auch hier möchte ich die Auslösungen der Kameras mit Hilfe von Punkten darstellen. Bei den nachtaktiven Tieren ordnen sich die Punkte somit im mittleren Bereich des Diagramms - zwischen den beiden Kurven - an.

Ich hoffe, dass ich es ansatzweise verständlich erklären konnte.
Alle Daten sind vorhanden und müssen nur noch zu Diagrammen verarbeitet werden aber ich komme damit schlichtweg nicht klar.
Mir fällt es schwer, Erklärungen und Beispiele aus der Literatur auf meine eigenen Datensätze zu übertragen, sodass ich im Endeffekt die richtigen Ergebnisse erziele. "Einfache" Plots, wie zum Beispiel die Anzahl der Auslösungen für ein Untersuchungsgebiet für den gesamten Zeitraum, habe ich selber erstellen können. Auf der X-Achse befindet sich der Untersuchungszeitraum und auf der Y-Achse die Zahl der Auslösungen der Kameras. Die Auslösungen werden mittels Punkten dargestellt.
Das ist ja im Prinzip das Grundgerüst der vorhin beschriebenen Grafiken. Ab hier komme ich aber leider nicht weiter.

Hat jemand von Euch einen Tipp für ein Lehrvideo oder Literatur, die genau sowas behandelt oder hat jemand von Euch vielleicht schon selber damit gearbeitet?
Ein kleiner Denkanstoß genügt vielleicht schon. Leider komme ich aber seit Tagen nicht weiter.

Ich nehme jeden kleinsten Tipp dankend an.

Beste Grüße
bigben
Beiträge: 2780
Registriert: Mi Okt 12, 2016 9:09 am

Re: Grafische Analyse von Aktivitäten

Beitrag von bigben »

Hallo Eliomys,

Bücher und Lehrvideos sind gut, um große Gedanken udn einheitliche Systeme zu erklären. Wie funktionieren Streudiagramme in R ist dafür ein gutes Thema. Ein passendes Lehrvideo für genau diesen speziellen Plot zu finden ist unwahrscheinlich. Dafür ist das genau das richtige für so ein Forum. Es gibt hier genug praktisches know-how in Sachen Grafik, dass wir Dich in die richtige Richtung schicken können. Dafür macht es aber Sinn, an Daten zu arbeiten die so strukturiert sind, wie Deine. Der einfachste Weg dafür ist, wenn Du uns Beispieldaten zur Verfügung stellst, anhand derer wir Dir dann Schritte hin zu Deiner Wunschgrafik erklären.

Hinweise, wie man Beispieldaten gut einstellen kann gibt es in diesem Post von EDi: viewtopic.php?f=20&t=11

Du kannst Dir auch schon mal das Grafikpaket ggplot2 installieren - ich rechne fest damit, dass die Vorschlage die kommen sich daran orientieren werden, also

Code: Alles auswählen

install.packages("ggplot2")
. Auch wenn das Einzeichnen einer Mondphase auf der y-Achse und gleichzeitig von Tierzahlen auf einer zweiten y-Achse nicht gerade eine Stärke dieses Systems darstellt.
Für den grafisch/statistischen Teil meiner Arbeit wollte ich lieber Rstudio statt Excel verwenden.
Das ist eine weise Entscheidung, die Du nicht bereuen wirst.

LG,
Bernhard


PS: Noch kein Vorschlag, aber schonmal ein Appetitmacher: copypaste das einfach mal in eine R Sitzung:

Code: Alles auswählen

mond.x=seq(1,60,.05);mond=sin(.3+mond.x/29.5*2*pi);tag=seq(1,60);
mond.tag=sin(.3+tag/29.5*2*pi);tiere=unlist(Map(function(mond.tag)rpois(1,12-3*mond.tag),mond.tag))

plot(mond.x, 28 + 2.5*mond, type = "l", lwd = 4.5, col = "grey", ylim = c(0, 30),
     xlab = "Tag", ylab = "Tiersichtungen", yaxt ="n");axis(2, at = seq(0,25, 5))
points(tiere ~ tag, type = "p", pch = 16);points(tiere ~ tag, type = "h", lwd = 1)
legend("bottomright",fill=c("black","grey"),legend=c("Tiersichtungen","Mondphase"),inset=.05)
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
Eliomys
Beiträge: 20
Registriert: Fr Feb 26, 2021 12:23 pm

Re: Grafische Analyse von Aktivitäten

Beitrag von Eliomys »

Hallo Bernhard,
danke für die schnelle Antwort!
ggplot2 ist installiert! :)

Den "Appetitmacher" von dir habe ich gerade ausprobiert und bin sehr begeistert! In genau diese Richtung gehen meine Gedanken.

Hier mal eine Beispieldatei als CSV im Anhang! Manche Werte (Ortsbezeichnungen und Koordinaten) entsprechen nicht der Realität, da ich diese aus datenschutzrechtlichen Gründen ändern musste.
Die Zeiten der Sonnenaufgänge und -untergänge sowie die Mondphase und die dazugehörigen Daten + Uhrzeiten stimmen allerdings überein.

Meine Tabellenblätter sind in der Realität um einiges größer als diese hier, aber dies hier dient ja auch nur der Veranschaulichung.
Ich müsste jetzt für jede Stadt ein eigenes Diagramm erstellen. Das lässt sich ja mit Subset() vermutlich relativ einfach einrichten, oder?
Abgesehen davon muss ich bestimmte Grafiken ebenfalls nur für einzelne Tierarten darstellen. Aber auch hier ist subset() vermutlich mein Mittel zum Zweck.

Wie Du siehst: Ich habe alle erforderlichen Daten bereits berechnet und in tabellarischer Form dargestellt. Mir fehlen im Endeffekt wirklich nur die Grafiken.

Herzlichsten Dank für die Unterstützung und beste Grüße
Zuletzt geändert von Eliomys am Do Mär 25, 2021 2:19 pm, insgesamt 1-mal geändert.
bigben
Beiträge: 2780
Registriert: Mi Okt 12, 2016 9:09 am

Re: Grafische Analyse von Aktivitäten

Beitrag von bigben »

Eliomys hat geschrieben: Fr Feb 26, 2021 5:43 pmggplot2 ist installiert! :)
Das ist gut. Für meinen ersten Vorschlag brauchen wir dann noch ggpubr .
Hier mal eine Beispieldatei als CSV im Anhang! Manche Werte (Ortsbezeichnungen und Koordinaten) entsprechen nicht der Realität,

Das ist gut, das stört hier ja nicht. Die Reihenfolge Deiner Daten ist erheblich nicht-chronologisch. Musst Du in Ruhe schauen, wenn Du die Abbildung auf Plausibilität prüfst.
Meine Tabellenblätter sind in der Realität um einiges größer als diese hier, aber dies hier dient ja auch nur der Veranschaulichung.
Ist grundsätzlich gut, aber dann bist Du der einzige der prüfen kann, wie der grafische Gesamteindruck ist. In den Beispieldaten sind die Mondphasen etwas dünn besiedelt.

Hier mal ein Vorschlag:

Code: Alles auswählen

d <- read.csv2("http://forum.r-statistik.de/download/file.php?id=1381")
d <- d[1:122,]  # leere Zeilen abschneiden
d$Datum <- as.Date(d$Datum) # Datum als Datum markieren
d$mondphase <- as.numeric(d$mondphase)
str(d)
table(d$Camera.Trap.Name)

# wir arbeiten erstmal mit Hamburg
d1 <- d[d$Camera.Trap.Name=="Hamburg",] 

library(ggplot2)
library(ggpubr)

ggarrange(
  
  ggplot(d1, aes(x = Datum, y = mondphase)) + 
    geom_point() +  # geom_smooth(span = .2, se = FALSE) +
    ylab("Mondphase") + xlab("") +
    theme_bw()
  ,
  ggplot(d1, aes(x = Datum, y = Number.of.Animals)) +
    geom_col(show.legend = FALSE) +
    ylab("Anzahl Tiere") +
    theme_bw()
  ,
  ncol = 1, align = "v", heights = 1:2
)
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
Eliomys
Beiträge: 20
Registriert: Fr Feb 26, 2021 12:23 pm

Re: Grafische Analyse von Aktivitäten

Beitrag von Eliomys »

Hallo Bernhard,

wahnsinn! Tausend Dank für diese Hilfe.

Dass die Daten teils nicht chronologisch aufgelistet sind, ist mir auch kürzlich aufgefallen. Das liegt scheinbar an der Software, die ich für das Auslesen der EXIF-Daten verwendet habe. Diese Software erstellt solche Tabellenblätter mehr oder weniger automatisch. Weshalb es da zu Abweichungen in der Chronologie kommt, weiß ich leider nicht. Liest R die Tabellen denn Zeile für Zeile von oben nach unten oder kann man R einfach auf die Daten und Uhrzeiten ansetzen, sodass die eigentliche physische Position innerhalb der Tabelle unwichtig wird?

Im Zweifelsfall muss ich händisch sortieren.

Wie gesgat.. Ich bin dir wahnsnnig dankbar für deine Hilfe.

Anbei erneut eine CSV-Datei. Dieses Mal aber in einer vollständigen Länge.

Momentan habe ich die Zeiten für Sonnenaufgang und -und untrgang sowie die Mondphase immer nur für den Tag, an dem ein Foto entstanden ist. Macht es für die Visualisierung womöglich mehr Sinn, diese Daten für den gesamten Untersuchungszeitraum zu erheben - auch, wenn an manchen Tagen keine Bilder entstanden sind? Für die Visualisierung könnte das vermutlich hilfreich sein.

Das Diagramm gefällt mir echt sehr gut!

Beste Grüße
Zuletzt geändert von Eliomys am Do Mär 25, 2021 2:20 pm, insgesamt 1-mal geändert.
bigben
Beiträge: 2780
Registriert: Mi Okt 12, 2016 9:09 am

Re: Grafische Analyse von Aktivitäten

Beitrag von bigben »

Hallo Eliomys,
Eliomys hat geschrieben: Sa Feb 27, 2021 10:42 amWeshalb es da zu Abweichungen in der Chronologie kommt, weiß ich leider nicht. Liest R die Tabellen denn Zeile für Zeile von oben nach unten oder kann man R einfach auf die Daten und Uhrzeiten ansetzen, sodass die eigentliche physische Position innerhalb der Tabelle unwichtig wird?

Im Zweifelsfall muss ich händisch sortieren.
Für das, was ich Dir oben geschickt habe, spielt die Reihenfolge keine Rolle. Sollte Sie für irgendwas, was in Zukunft kommt, eine Rolle spielen, dann kann man R sortieren lassen.
Anbei erneut eine CSV-Datei. Dieses Mal aber in einer vollständigen Länge.
Und, hast Du es geschafft, den Code auch auf diese größere Datei anzuwenden?
Momentan habe ich die Zeiten für Sonnenaufgang und -und untrgang sowie die Mondphase immer nur für den Tag, an dem ein Foto entstanden ist. Macht es für die Visualisierung womöglich mehr Sinn, diese Daten für den gesamten Untersuchungszeitraum zu erheben.
Das würde der "Mondphase" ein glatteres Bild verpassen - aber letztlich nur Punkte hinzufügen, die man ohnehin nicht mit den Daten verknüpfen soll. Kann man in beide Richtungen entscheiden.

LG,
Bernhard
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
Eliomys
Beiträge: 20
Registriert: Fr Feb 26, 2021 12:23 pm

Re: Grafische Analyse von Aktivitäten

Beitrag von Eliomys »

Hallo Bernhard,

ja, der Code hat auch bei den größeren Grafiken einwandfrei funktioniert!

Ich suche gerade nach einer Möglichkeit die Mondphase und die Anzahl der Tiere in eine Grafik zu basteln.
Für die Betrachtung der Anzahl der Tiere im Verhältnis zum Sonnenaufgang und -untergang habe ich auch noch keine astreine Idee.

Deine Hilfe und Denkanstöße haben wir aber wahnsinnig geholfen! Herzlichsten Dank!

Liebe Grüße
Athomas
Beiträge: 769
Registriert: Mo Feb 26, 2018 8:19 pm

Re: Grafische Analyse von Aktivitäten

Beitrag von Athomas »

Ich suche gerade nach einer Möglichkeit die Mondphase und die Anzahl der Tiere in eine Grafik zu basteln.
Da wäre das erste gewesen, was ich gemacht hätte: für jede Spezies ein Scatterplot Mondphase x Anzahl Tiere ...
Eliomys
Beiträge: 20
Registriert: Fr Feb 26, 2021 12:23 pm

Re: Grafische Analyse von Aktivitäten

Beitrag von Eliomys »

Servus,

das möchte ich jetzt auch mal versuchen. Wobei ich Bernhards Vorschlag für die Grafik an sich super finde.
Ich muss da einfach mal Herumprobieren und schauen, was im Endeffekt am besten funktioniert.

Der Vorschlag hat mir jedenfalls enorm geholfen!

Liebe Grüße
Eliomys
Beiträge: 20
Registriert: Fr Feb 26, 2021 12:23 pm

Re: Grafische Analyse von Aktivitäten

Beitrag von Eliomys »

Ich hätte nochmal eine Frage.

Also die Mondphase in einem Diagramm abzubilden als schöne glatte Kurve stellt erstmal kein Problem dar. Wie kann ich denn da jetzt am besten die Anzahl der fotografierten Tiere hinzufügen, wenn ich diese als Punkte in die Grafik integrieren möchte?
Ähnlich ist es ja auch mit den Zeiten der Sonnenaufgänge und -untergänge.

Ich verstehe Bernhards Vorschlag und kann da die Befehle auch nachvollziehen, jedoch stehe ich auf dem Schlauch, wenn in mehrere Werte in einem einzigen Diagramm abbilden möchte. Für die Sonnenzeiten kommt ja noch eine weitere Variable mehr hinzu.
Im Material- und Methodenteil verschiedenster wissenschaftlicher Veröffentlichung steht zwar immer, dass mit R gearbeitet wurde und manchmal werden auch die Packages genannt aber eine "Erklärung" der Arbeitsschritte logischerweise nicht.

Kann mir dazu jemand einen Tipp geben?
Antworten