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
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!!!
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.")
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