back-to-back Barplot

Wie erstelle ich Grafiken, was ist zu beachten?

Moderatoren: EDi, jogo

alex
Beiträge: 3
Registriert: Di Dez 25, 2018 10:13 pm

back-to-back Barplot

Beitrag von alex » Di Dez 25, 2018 10:22 pm

Hallo zusammen und frohe Weihnachten!

ich bin seit Tagen am verzweifeln. Ich versuche mit R einen back-to-back Barplot zu entwerfen und schaffe es trotz intensiver Recherche nicht.
Letztendlich habe ich 2 Spalten, von denen ich gerne ein nach rechts und eine nach links plotten würde. Im angehängten Schaubild sind die Daten aus Spalte "A", nun soll nach rechts noch Balken der Zahlen aus Spalte "B". Kann mir jemand dafür eine passende Funktion verraten?

Code: Alles auswählen

library(ggplot2)

bp <- ggplot(data=tkd, aes(x=id, y=A))+
  geom_bar(stat="identity") 
print(bp) + coord_flip()

Code: Alles auswählen

tkd <- read.csv2(text=
"id;	   A;	 B
B201;	3350;	300
B202;	137;   	140
B203;	300;  	733
B204;	104;   	91
B205;	1257;	4790
B206;	312;    627
B207;	3695;	13020")
Bsp. Barplot.pdf
(83 KiB) 22-mal heruntergeladen

ruedi_br
Beiträge: 19
Registriert: Do Mär 01, 2018 3:53 pm

Re: back-to-back Barplot

Beitrag von ruedi_br » Fr Dez 28, 2018 3:10 pm

Da wirst Du auf das grid-System ausweichen müssen, das die Basis von ggplot2 ist (dem Aussehen nach benutzt Du das ja wohl).
Mit ggplot2 die Grafiken schnitzen und jeweils einer Variablen zuweisen, dann
device zur Ausgabe aufmachen, z.B. pdf
2 Viewports nebeneinander aufmachen und in jedem jeweils eine Grafik "print"en.
Vielleicht hat ja jemand noch eine passende Fundstelle dazu 8-)
Gruß
Ruedi
"Alles was lediglich wahrscheinlich ist, ist wahrscheinlich falsch."
René Descartes

Athomas
Beiträge: 141
Registriert: Mo Feb 26, 2018 8:19 pm

Re: back-to-back Barplot

Beitrag von Athomas » Fr Dez 28, 2018 4:47 pm

Da wirst Du auf das grid-System ausweichen müssen, das die Basis von ggplot2 ist
Wat :shock: ? Wo hast Du das denn her?

bigben
Beiträge: 795
Registriert: Mi Okt 12, 2016 9:09 am

Re: back-to-back Barplot

Beitrag von bigben » Mo Dez 31, 2018 7:33 am

---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte

alex
Beiträge: 3
Registriert: Di Dez 25, 2018 10:13 pm

Re: back-to-back Barplot

Beitrag von alex » Mi Jan 02, 2019 2:43 pm

Vielen Dank euch, für die Antworten!

Die Anleitungen für Alterspyramiden hab ich mir schon alle zu Gemüte geführt (ähnlich wie der 2. Link von bigben). Da ist die Tabelle aber immer anders strukturiert, es wird also nicht nach 2 Spalten geplottet, sondern nach 2 Variablen einer Spalte (männlich-weiblich) geordnet.

Im Zweifel könnte ich natürlich her gehen und meine Tabelle derart umbauen, aber das ist ziemlich mühsam und unpraktikabel bei großen Mastertabellen. Ich kann mir einfach nicht vorstellen, dass es keine Funktion bei R gibt, mit der man einfach sagen kann "Spalte A nach links und Spalte B nach rechts plotten".

Athomas
Beiträge: 141
Registriert: Mo Feb 26, 2018 8:19 pm

Re: back-to-back Barplot

Beitrag von Athomas » Mi Jan 02, 2019 4:15 pm

Zumindest ggplot2 liebt - wie EDi gerne sagt - das "lange" Datenformat.
Da die Daten häufig im "weiten" Format vorliegen, ist in R die Umwandlung (etwa per "melt" im package "reshape2") von "wide" auf "long" extrem einfach gestaltet...

bigben
Beiträge: 795
Registriert: Mi Okt 12, 2016 9:09 am

Re: back-to-back Barplot

Beitrag von bigben » Do Jan 03, 2019 11:26 am

Im Zweifel könnte ich natürlich her gehen und meine Tabelle derart umbauen
Im Zweifel lohnt sich der Aufwand, das zu lernen. Ich hab es schon 100 Mal gelernt.

Ich kann mir einfach nicht vorstellen, dass es keine Funktion bei R gibt, mit der man einfach sagen kann "Spalte A nach links und Spalte B nach rechts plotten"
Muss es denn ggplot2 sein?
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte

ruedi_br
Beiträge: 19
Registriert: Do Mär 01, 2018 3:53 pm

Re: back-to-back Barplot

Beitrag von ruedi_br » Do Jan 03, 2019 11:45 am

@Athomas
Wat :shock: ? Wo hast Du das denn her?
Paul Murrell, R Graphics, second Edition, Seite xii
Gruß Ruedi
"Alles was lediglich wahrscheinlich ist, ist wahrscheinlich falsch."
René Descartes

Athomas
Beiträge: 141
Registriert: Mo Feb 26, 2018 8:19 pm

Re: back-to-back Barplot

Beitrag von Athomas » Do Jan 03, 2019 1:55 pm

@ruedi_br: Da ich das Buch nicht besitze, musste ich mir einen "Preview" anschauen, der leider keine Seitennummerierungen hatte.
Ich vermute, Du beziehst Dich auf diese Passage:
Both lattice and ggplot2 use grid to draw plots, but both can be used without directly encountering grid.
Ob man deswegen grid als "Basis" von ggplot2 bezeichnen sollte? Ich würde es nicht tun...

Athomas
Beiträge: 141
Registriert: Mo Feb 26, 2018 8:19 pm

Re: back-to-back Barplot

Beitrag von Athomas » Do Jan 03, 2019 2:08 pm

"Melten" in R ist kein Hexenwerk :lol: :

Code: Alles auswählen

DF.wide <- data.frame(ID=LETTERS[1:10], matrix(runif(50), ncol=5, dimnames=list(NULL, letters[1:5])), stringsAsFactors=FALSE)

library(reshape2)

DF.long <- melt(DF.wide, id.vars="ID", variable.name="Spaltenname")

Antworten

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 0 Gäste