0 Daumen
583 Aufrufe

Frage:

Zeichnen Sie ein Diagramm mithilfe der Programmiersprache R.

Anzahl befragte Personen durchschnittlicher jaehrlicher Zeitaufwand für Sport in Stunden.

Daten-Tabelle:

AltersgruppeNationalitaetGeschlechtAnzahl_befragte_Personendurchschnittlicher_jaehrlicher_Zeitaufwand_fuer_Sport_in_Stunden
18-30DW837250
18-30GBW652289
18-30FW902294
18-30IW638256
18-30DM815356
18-30GBM956398
18-30FM793363
18-30IM1021368
31-50Dw956200
31-50GBw768205
31-50Fw920189
31-50Iw785172
31-50DM687230
31-50GBM919224
31-50FM702227
31-50IM454256
51-65Dw731241
51-65GBw1023273
51-65Fw722242


Ansatz/Problem:

Meine Aufgabe ist es anhand dieser Tabelle ein gestapeltes Säulendiagramm zu erstellen. Auf der Y-Achse soll der Zeitaufwand für Sport in Stunden stehen. Es sollte 4 Säulen geben, jeweils eine für Deutschland, Großbritannien, Frankreich und Italien. Die Säulen sollen gestapelt sein nach Altersgruppen. Also z.B. eine Säule für Deutschland und die verschiedene Altersgrupen aufeinander gestapelt.


Mein Code bis jetzt:

barplot(height=t(sportdaten[,5]), names.arg=sportdaten[,1], axis.lty="solid", xlab="Nationalitaeten", ylab="Zeitaufwand in Stunden", border=NA, las=1, main="Durchschnittlicher Zeitaufwand für Sport in Stunden nach verschiedenen Ländern und Altersgruppen")

Avatar von

1 Antwort

0 Daumen

Antwort mit KI erzeugt

Programmieren eines gestapelten Säulendiagramms in R mit ggplot2

Zur Erstellung eines gestapelten Säulendiagramms, das die durchschnittlichen jährlichen Stunden für Sportaktivitäten nach Alter, Geschlecht und Nationalität darstellt, können wir den ggplot2-Befehl in R verwenden, der für seine Flexibilität und Anpassbarkeit bekannt ist. Hier ist, wie Sie es Schritt für Schritt machen können:

1. Daten vorbereiten

Zunächst müssen wir die vorliegenden Daten in R importieren und in ein geeignetes Format bringen. Dabei denken wir daran, dass in Ihrer Frage die Geschlecht-Variable für die Altersgruppe "31-50" klein geschrieben ist ("w" statt "W"), was wir in den Daten bereinigen müssen, um Konsistenz zu gewährleisten.

r
# Daten erstellen
daten <- data.frame(
  Altersgruppe = c("18-30", "18-30", "18-30", "18-30", "18-30", "18-30", "18-30", "18-30",
                   "31-50", "31-50", "31-50", "31-50", "31-50", "31-50", "31-50", "31-50",
                   "51-65", "51-65", "51-65"),
  Nationalitaet = c("D", "GB", "F", "I", "D", "GB", "F", "I",
                    "D", "GB", "F", "I", "D", "GB", "F", "I",
                    "D", "GB", "F"),
  Geschlecht = c("W", "W", "W", "W", "M", "M", "M", "M",
                 "w", "w", "w", "w", "M", "M", "M", "M",
                 "w", "w", "w"),
  Anzahl_befragte_Personen = c(837, 652, 902, 638, 815, 956, 793, 1021,
                               956, 768, 920, 785, 687, 919, 702, 454,
                               731, 1023, 722),
  durchschnittlicher_jaehrlicher_Zeitaufwand_fuer_Sport_in_Stunden = c(250, 289, 294, 256, 356, 398, 363, 368,
                                                                       200, 205, 189, 172, 230, 224, 227, 256,
                                                                       241, 273, 242)
)

# Geschlechtswerte vereinheitlichen
daten$Geschlecht <- toupper(daten$Geschlecht)

print(head(daten))


2. ggplot2 verwenden

Nun verwenden wir ggplot2, um das gestapelte Säulendiagramm zu erzeugen. Dabei fassen wir die Stunden nach Nationalität und Altersgruppe zusammen.

r
# ggplot2 Bibliothek laden
library(ggplot2)

# Gestapeltes Säulendiagramm zeichnen
ggplot(daten, aes(x = Nationalitaet, y = durchschnittlicher_jaehrlicher_Zeitaufwand_fuer_Sport_in_Stunden, fill = Altersgruppe)) +
  geom_bar(stat = "identity", position = "stack") +
  labs(title = "Durchschnittlicher jährlicher Zeitaufwand für Sport",
       x = "Nationalität",
       y = "Zeitaufwand in Stunden",
       fill = "Altersgruppe") +
  theme_minimal() +
  scale_fill_brewer(palette = "Set3")


In diesem Code:

- Mit aes definieren wir die Ästhetik unseres Diagramms: die x-Achse (Nationalität), die y-Achse (Stunden) und die Füllfarbe basierend auf der Altersgruppe.
- geom_bar(stat = "identity", position = "stack") erzeugt das gestapelte Säulendiagramm. stat = "identity" nutzt die Datenwerte direkt für Höhen der Säulen, und position = "stack" stapelt die Werte für unterschiedliche Altersgruppen in jeder Nationalität.
- Mit labs und scale_fill_brewer passen wir die Beschriftungen und das Farbschema des Diagramms an.

Das Ergebnis dieses Codes ist ein gestapeltes Säulendiagramm mit vier Säulen, eine für jede Nationalität, wobei jede Säule die Zeitaufwendungen für Sport nach Altersgruppen aufgeteilt und übereinander gestapelt zeigt.
Avatar von 2,9 k

Ein anderes Problem?

Stell deine Frage

Ähnliche Fragen

Willkommen bei der Stacklounge! Stell deine Frage einfach und kostenlos

x
Made by a lovely community