Seite 1 von 1

ggplot2: Gestapeltes Balkendiagramm lesbarer machen

Verfasst: Sa Nov 20, 2021 12:03 pm
von codecook
Hallo, liebe Forengemeinde! (:

Ich bin ganz neu hier im Forum und arbeite auch erst seit zwei Wochen mit R (: Deshalb hoffe ich, dass ich keine all zu blöden oder redundanten Fragen stelle. Habe mich aber schon viele Stunden in R eingearbeitet und programmiere gerade mein erstes Projekt, wofür ich eure Hilfe benötige (:

Verwendete Packages:
  • ggplot2
  • reshape2
Die Daten und die wissenschaftliche Problemstellung
Ich arbeite mit einem Datensatz, der Metadaten zu Artikeln einer Zeitschrift enthält. Ich möchte anhand von ggplot2 ein geschichtetes (oder gestapeltes) Balkendiagramm erstellen, das über alle Ausgaben der Zeitschrift hinweg (x-Achse: Heftnummer) den prozentualen Anteil verschiedener Rubriken (im Sinne der Anzahl der Artikel in der Rubrik) darstellt. Alle Beobachtungen (also alle Zeitschriften-Artikel) wurden vor dem Plotten jeweils einer Rubrik (z.B. Sport) zugewiesen. Anschließend habe ich Dummies für jede Rubrik erstellt. Indem ich den Datensatz anhand der Heftnummer gruppiert habe, konnte ich die absoluten Häufigkeiten der Artikel einer Rubrik pro Heft zählen, sowie den prozentualen Anteil der Rubrik pro Heft berechnen, indem ich die absolute Anzahl durch die Gesamtzahl an Artikeln im Heft geteilt und mit 100 multipliziert habe.

Das Plotten
Anschließend habe ich die Daten anhand des Packages "reshape2" ins Long-Format überführt und mithilfe von "ggplot2" geplottet. Das Ergebnis ist ein auf den ersten Blick echt hübsches Balkendiagramm, das den prozentualen Anteil aller Rubriken über alle Zeitschriftenausgaben hinweg darstellt. Die Balken reichen auf der y-Achse in jedem Falle genau zum Wert 100, da ja alle Prozentwerte addiert stets 100 ergeben.

Mein Problem ist nun: Da ich 30 Rubriken kodiert habe, werden diese 30 Rubriken anhand von 30 verschiedenen Farben dargestellt. Die Farben sind sich teilweise so ähnlich, dass man sie kaum voneinander unterscheiden kann. Ich frage mich, ob ich die Farben z.B. durch einprägsame, sehr unterschiedliche Muster ersetzen kann, so dass man leichter über die Legende ablesen kann, welche Farbe bzw. welches Muster nun welche Rubrik darstellt. Seht euch das Diagramm doch mal an ;) Ja, ich weiß: Die Variablenbezeichnungen sind noch etwas kryptisch, aber das sind Formalia um die ich mich zum Schluss kümmere (: Habt ihr eine Idee, wie ich das auf einfache Art und Weise übersichtlicher gestalten kann?

Damit ihr mich besser verstehen und das Problem nachvollziehen könnt, anbei ein paar Code-Abschnitte, Table-Outputs und der Plot, um den es geht (:

Vielen Dank im voraus!!! ;) ;) ;) :D :D :D :) :) :) :mrgreen: :mrgreen: :mrgreen:

Die aufbereitete Input-Tabelle habe mittels reshape::melt() ins Long-Format transformiert:

Code: Alles auswählen

df10_adjusted_rates3_long <- melt(df10_adjusted_rates3, id = "Heftnr.")
auszug_aus_long_table.png

Hier der Code, wie ich das dann geplottet habe:

Code: Alles auswählen

# Basics 
Ch01_balken_adj <- ggplot(data=df10_adjusted_rates3_long,
                      aes(x = factor(Heftnr.),
                          y = value,
                          fill = variable)) +
    geom_col()
Ch01_balken_adj

# Achsenbeschriftung
Ch01_balken2_adj <- Ch01_balken_adj + xlab("Heftnummer") + ylab("Prozentualer Anteil der Themen an der Gesamtzahl an Artikeln pro Ausgabe")
Ch01_balken2_adj

Re: ggplot2: Gestapeltes Balkendiagramm lesbarer machen

Verfasst: Sa Nov 20, 2021 3:31 pm
von bigben
Hallo codecook,

Schraffuren sind nicht unbedingt die prominente Stärke von ggplot2. Vielleicht wäre es ganz gut, wenn Du Beispieldaten (müsse keine echten Daten sein) anstelle eines Screenshots von Daten posten könntest, siehe dazu http://forum.r-statistik.de/viewtopic.php?t=11 und https://vm.tiktok.com/ZM88e2rv7/

LG, Bernhard

Re: ggplot2: Gestapeltes Balkendiagramm lesbarer machen

Verfasst: Sa Nov 20, 2021 9:23 pm
von bigben
Ein anderer möglicherweise nützlicher Verweis könnte der auf das Paket ggpattern sein: https://coolbutuseless.github.io/package/ggpattern/
Eigene Erfahrungen habe ich damit keine.
LG, Bernhard

Re: ggplot2: Gestapeltes Balkendiagramm lesbarer machen

Verfasst: So Nov 21, 2021 3:28 pm
von Athomas
Habt ihr eine Idee, wie ich das auf einfache Art und Weise übersichtlicher gestalten kann?
Ja: zuallererst von der Idee, das Ganze als "gestapeltes Balkendiagramm" darzustellen, verabschieden.
Egal, wie Du Deine 30 Kategorien einfärbst/schraffierst - es bleibt eine Verhohnepipelung der menschlichen Wahrnehmung :) !

Re: ggplot2: Gestapeltes Balkendiagramm lesbarer machen

Verfasst: So Nov 21, 2021 10:02 pm
von EDi
Egal, wie Du Deine 30 Kategorien einfärbst/schraffierst - es bleibt eine Verhohnepipelung der menschlichen Wahrnehmung :) !
Nach oben
Jupp, sehe ich genauso. Das können wir nicht verarbeiten.
Wie wäre es mit facets?
Z.b. für jede variable eines, x das Heft, y Anteil und dann als Liniendiagramm?
Oder für jedes Heft facets machen und auf x die variable legen?

Re: ggplot2: Gestapeltes Balkendiagramm lesbarer machen

Verfasst: Di Nov 30, 2021 1:00 pm
von Hufeisen
Die Idee mit dem gestapelten Balkendiagramm ist eigentlich ganz nett. Wie wäre es, wenn du die üblichen Kategorien der Magazingestaltung für die bereits vorgeschlagenen Facetten nutzt? Ich rate jetzt mal anhand deiner Beschriftungen: Politik und Gesellschaft, Kunst und Kultur, Reisen und Freizeit (usw. wie es eben passt). Ich denke, das würde eine übersichtliche Darstellung ergeben, denn zu viele panel sind auch nicht sonderlich übersichtlich.

Re: ggplot2: Gestapeltes Balkendiagramm lesbarer machen

Verfasst: Do Apr 21, 2022 7:52 pm
von codecook
Entschuldigt bitte, dass ich nicht mehr geantwortet habe. Das Balkendiagramm habe ich für eine Freundin designt und irgendwann hat sie selbst an der Arbeit aufgehört zu arbeiten. Seitdem hat sich die Sache erledigt. Eure Hilfe war trotzdem super!

Viele Grüße!