Horizontales Balkendiagramm mit Min Max und Durchschnitt

Wie erstelle ich Grafiken, was ist zu beachten?

Moderatoren: EDi, jogo

Antworten
Freddy19911
Beiträge: 15
Registriert: Do Sep 05, 2019 5:07 pm

Horizontales Balkendiagramm mit Min Max und Durchschnitt

Beitrag von Freddy19911 »

Hallo Zusammen,

ich möchte das Maximum, das Minimum und den Durchschnitt eines bestimmten Merkmals als horizontales Balkendiagramm darstellen. Ich habe z.B. den Jahresumsatz von zwei Unternehmen für zehn Jahre vorliegen und möchte ein horizontales Balkendiagramm erstellen, wobei der jeweilige Balken eines Unternehmens vom kleinsten Umsatz innerhalb der 10 Jahresperiode (Minimum) bis zum höchsten Umsatz innerhalb der Periode (Maximum) dargestellt werden soll und der Durchschnitt durch eine vertikale Linie durch den Balken markiert wird. Die Werte von Min, Max und Durchschnitt sind bereits in R eingelesen und müssen nicht mehr berechnet werden. Die Datenstruktur sieht wie folgt aus:
-------------------Unternehmen 1-------------Unternehmen 2
Min-----------------100-----------------------------200
Durchschnitt------150-----------------------------250
Max-----------------200-----------------------------300

Im Prinzip also eine Art horizontaler Boxplot
Hat jemand eine Idee wie ich das in R realisieren kann?
Vielen Dank
bigben
Beiträge: 2771
Registriert: Mi Okt 12, 2016 9:09 am

Re: Horizontales Balkendiagramm mit Min Max und Durchschnitt

Beitrag von bigben »

Gibt es Vorgaben, ob das in ggplot2 oder in base dargestellt werden soll?
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
Freddy19911
Beiträge: 15
Registriert: Do Sep 05, 2019 5:07 pm

Re: Horizontales Balkendiagramm mit Min Max und Durchschnitt

Beitrag von Freddy19911 »

Hallo,
Vorgaben gibt es keine. Ich hatte es bisher nur mit ggplot2 anhand eines ähnlichen threads aus dem Internet versucht. Leider vergeblich.
bigben
Beiträge: 2771
Registriert: Mi Okt 12, 2016 9:09 am

Re: Horizontales Balkendiagramm mit Min Max und Durchschnitt

Beitrag von bigben »

Code: Alles auswählen

library(ggplot2)
bsp <- data.frame(company = c("A", "B", "C"),
                  min = c(100, 200, 130),
                  max = c(200, 300, 180),
                  mean = c(150, 250, 140))

p <- ggplot(bsp, aes(x=company)) + 
     geom_linerange(aes(ymin=min, ymax=max)) +
     geom_point(aes(y = mean)) +
     xlab("Company") + ylab("in Dollars $$$") +
     coord_flip()
print(p)
Geht das in die richtige Richtung? Wenn ja, dann beschäftige Dich mal mit der Funktion t()


EDIT: Hier eine Variante, die etwas weniger strichhaft und dafür etwas balkiger ist:

Code: Alles auswählen

p <- ggplot(bsp, aes(x=company)) + 
     geom_linerange(aes(ymin=min, ymax=max), lwd=20) +
     geom_point(aes(y = mean), lwd=10, color="white") +
     xlab("Company") + ylab("in Dollars $$$") +
     coord_flip()
print(p)
Rplot.jpeg
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
Freddy19911
Beiträge: 15
Registriert: Do Sep 05, 2019 5:07 pm

Re: Horizontales Balkendiagramm mit Min Max und Durchschnitt

Beitrag von Freddy19911 »

Hallo bigben,

vielen Dank, so hatte ich mir das vorgestellt. Gibt es noch eine Möglichkeit die entsprechenden Maximum und Minimum Werte am Ende bzw. Anfang des jeweiligen Balken darzustellen?

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

Re: Horizontales Balkendiagramm mit Min Max und Durchschnitt

Beitrag von bigben »

Dargestellt sind die Werte ja durch Anfang und Ende vom Balken. Möchtest Du da auch noch einen Punkt oder einen senkrechten Strich haben oder möchtest Du eine Strichverlängerung auf die Achse haben oder möchtest Du die Zahlen dazu ins Diagramm schreiben?

LG,
Bernhard

Edit: Hilft das hier vielleicht: https://ggplot2.tidyverse.org/reference/annotate.html :?:
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
Freddy19911
Beiträge: 15
Registriert: Do Sep 05, 2019 5:07 pm

Re: Horizontales Balkendiagramm mit Min Max und Durchschnitt

Beitrag von Freddy19911 »

Danke für den Link, den schaue ich mir gleich mal an :-)
Am besten wäre ein senkrechter Strich am Anfang und Ende des Balkens sowie die dazugehörigen Werte an den beiden Strichen. Sollten einmal mehr Unternehmen dazukommen, würde eine Verlängerung auf den Wert an der Achse wohl zu unübersichtlich.

LG und ein schönes Wochenende
bigben
Beiträge: 2771
Registriert: Mi Okt 12, 2016 9:09 am

Re: Horizontales Balkendiagramm mit Min Max und Durchschnitt

Beitrag von bigben »

Code: Alles auswählen

library(ggplot2)
bsp <- data.frame(company = c("A", "B", "C"),
                  min = c(100, 200, 130),
                  max = c(200, 300, 180),
                  mean = c(150, 250, 140))

p <- ggplot(bsp, aes(x=company)) + 
  geom_errorbar(aes(ymin=min, ymax=max, width=.2)) +
  geom_point(aes(y = mean)) +
  xlab("Company") + ylab("Jahresumsatz") +
  coord_flip() + 
  geom_text(aes(y=min-7, label = min)) +
  geom_text(aes(y=max+7, label = max)) +
  geom_text(aes(x=as.numeric(company)-.2, y=mean, label = mean)) 
print(p)
Rplot.jpeg
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
Antworten