Gruppiertes Balkendiagramm

Wie erstelle ich Grafiken, was ist zu beachten?

Moderatoren: EDi, jogo

Antworten
julia.schwantje
Beiträge: 3
Registriert: So Okt 18, 2020 2:59 pm

Gruppiertes Balkendiagramm

Beitrag von julia.schwantje »

Hallo :) ,

ich bräuchte Hilfe bei der Erstellung eines Balkendiagramms. Das Hauptproblem ist eigentlich die Y-Achse. Mein Ziel ist es aus Messungen einer Durchsichtmessung ein Balkendiagramm zu erstellen. Dabei sollen die Vegetationsschichten in 10ner Schritten von 10-100 auf die Y-Achse aufgetragen werden. Auf die X-Achse soll dann die jeweilige Deckung der Schicht dargestellt werden.
Jedoch gibt es Pro Untersuchungsfläche (Pro Fläche will ich ein Diagramm machen) vier Aufnahmen die übereinander dargestellt werden sollen.

Code: Alles auswählen

ds<-cbind(c(10,100), c(20,70),
          c(30,15),c(40,4),
          c(50,0),c(60,0),
          c(70,0),c(80,0),
          c(90,0),c(100,0),
          c(10,90),c(20,70),
          c(30,60),c(40,55),
          c(50,20),c(60,30),
          c(70,15),c(80,0),
          c(90,0),c(100,0),
          c(10,100),c(20,95),
          c(30,30),c(40,20),
          c(50,10),c(60,12),
          c(70,8),c(80,6),
          c(90,1),
          c(10,70),c(20,45),
          c(30,35),c(40,20),
          c(50,10), c(60,10),
          c(70,15),c(80,4),
          c(90,8))

Code: Alles auswählen

 ï..Aufnahme HÃ.hen.in.cm X..Deckung
1            1           10        100
2            1           20         70
3            1           30         15
4            1           40          4
5            1           50          0
6            1           60          0
7            1           70          0
8            1           80          0
9            1           90          0
10           2           10         90
11           2           20         70
12           2           30         60
13           2           40         55
14           2           50         20
15           2           60         30
16           2           70         15
17           2           80          0
18           2           90          0
19           3           10        100
20           3           20         95
21           3           30         30
22           3           40         20
23           3           50         10
24           3           60         12
25           3           70          8
26           3           80          6
27           3           90          1
28           4           10         70
29           4           20         45
30           4           30         35
31           4           40         20
32           4           50         10
33           4           60         10
34           4           70         15
35           4           80          4
36           4           90          8
Das war meine Excel tabelle die ich ursprünglich nutzen wollte. Die Balken sollten dann nach der Nummer der Aufnahme gruppiert werden.

Ich bin über jede Hilfe dankbar und freue mich sehr, wenn mir jemand eine Hilfestellung geben kann. ;)
Zuletzt geändert von jogo am Do Nov 19, 2020 2:42 pm, insgesamt 1-mal geändert.
Grund: Formatierung verbessert. http://forum.r-statistik.de/viewtopic.php?f=20&t=29
bigben
Beiträge: 1856
Registriert: Mi Okt 12, 2016 9:09 am

Re: Gruppiertes Balkendiagramm

Beitrag von bigben »

Hi!

Ich bin mir nicht sicher, ob ich das alles richtig verstanden habe, deshalb hier erstmal ein Vorschlag. Schreib mal, ob das dem Ziel schon nahe kommt bzw. was Du Dir anders wünschst, dann wird sich da was machen lassen.

Code: Alles auswählen

ds <-  read.table(header= TRUE, text="Aufnahme Hoehe Deckung
1            1           10        100
2            1           20         70
3            1           30         15
4            1           40          4
5            1           50          0
6            1           60          0
7            1           70          0
8            1           80          0
9            1           90          0
10           2           10         90
11           2           20         70
12           2           30         60
13           2           40         55
14           2           50         20
15           2           60         30
16           2           70         15
17           2           80          0
18           2           90          0
19           3           10        100
20           3           20         95
21           3           30         30
22           3           40         20
23           3           50         10
24           3           60         12
25           3           70          8
26           3           80          6
27           3           90          1
28           4           10         70
29           4           20         45
30           4           30         35
31           4           40         20
32           4           50         10
33           4           60         10
34           4           70         15
35           4           80          4
36           4           90          8")


library(ggplot2)
ggplot(ds) +
  geom_col(aes(x= Deckung, y=factor(Hoehe), fill = factor(Aufnahme)),
           position = position_dodge())
LG,
Bernhard
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
julia.schwantje
Beiträge: 3
Registriert: So Okt 18, 2020 2:59 pm

Re: Gruppiertes Balkendiagramm

Beitrag von julia.schwantje »

oh ja, vielen lieben Dank!
Damit kann ich definitiv arbeiten ;)
bigben
Beiträge: 1856
Registriert: Mi Okt 12, 2016 9:09 am

Re: Gruppiertes Balkendiagramm

Beitrag von bigben »

Hallo Julia,

freut mich, wenn daraus was nach Deinen Vorstellungen wird. Ich möchte trotzdem anmerken, dass ich das mit den Balken unübersichtlich finde. Vielleicht gefällt Dir ja diese Idee?

Code: Alles auswählen

ds$minDeck <- ave(ds$Deckung, ds$Hoehe, FUN = min)
ds$maxDeck <- ave(ds$Deckung, ds$Hoehe, FUN = max)

library(ggplot2)
library(ggbeeswarm)
ggplot(ds) +
  geom_beeswarm(aes(y=Deckung, x= factor(Hoehe)), size =2, cex = 1.5) + 
  geom_linerange(aes(ymin=minDeck, ymax = maxDeck, x= factor(Hoehe)), color = "darkgrey") +
  xlab("Höhe in Zentimetern") +
  coord_flip() +
  theme_bw()
Rplot.jpeg
Wahlweise zusätzlich noch mit den Mittelwerten pro Höhe als großer, hellgrauer Kreis?

Code: Alles auswählen

ds$minDeck <- ave(ds$Deckung, ds$Hoehe, FUN = min)
ds$maxDeck <- ave(ds$Deckung, ds$Hoehe, FUN = max)
ds$meanDeck <- ave(ds$Deckung, ds$Hoehe, FUN = mean)

library(ggplot2)
library(ggbeeswarm)
ggplot(ds) +
  geom_point(aes(x=factor(Hoehe), y = meanDeck), size = 8, color ="lightgrey") +
  geom_linerange(aes(ymin=minDeck, ymax = maxDeck, x= factor(Hoehe)), color = "darkgrey", lwd=1.5) +
  geom_beeswarm(aes(y=Deckung, x= factor(Hoehe)), size =2, cex = 1.5) + 
  xlab("Höhe in Zentimetern") +
  coord_flip() +
  theme_bw()
LG,
Bernahrd
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
Antworten