Horizontales Balkendiagramm mit Min Max und Durchschnitt
-
- Beiträge: 15
- Registriert: Do Sep 05, 2019 5:07 pm
Horizontales Balkendiagramm mit Min Max und Durchschnitt
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
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
Re: Horizontales Balkendiagramm mit Min Max und Durchschnitt
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
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
-
- Beiträge: 15
- Registriert: Do Sep 05, 2019 5:07 pm
Re: Horizontales Balkendiagramm mit Min Max und Durchschnitt
Hallo,
Vorgaben gibt es keine. Ich hatte es bisher nur mit ggplot2 anhand eines ähnlichen threads aus dem Internet versucht. Leider vergeblich.
Vorgaben gibt es keine. Ich hatte es bisher nur mit ggplot2 anhand eines ähnlichen threads aus dem Internet versucht. Leider vergeblich.
Re: Horizontales Balkendiagramm mit Min Max und Durchschnitt
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)
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)
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
-
- Beiträge: 15
- Registriert: Do Sep 05, 2019 5:07 pm
Re: Horizontales Balkendiagramm mit Min Max und Durchschnitt
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
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
Re: Horizontales Balkendiagramm mit Min Max und Durchschnitt
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
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
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
-
- Beiträge: 15
- Registriert: Do Sep 05, 2019 5:07 pm
Re: Horizontales Balkendiagramm mit Min Max und Durchschnitt
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
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
Re: Horizontales Balkendiagramm mit Min Max und Durchschnitt
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)
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte