Überlappender Barplot

Wie erstelle ich Grafiken, was ist zu beachten?

Moderatoren: EDi, jogo

foena1988
Beiträge: 21
Registriert: Mo Okt 23, 2017 8:30 am

Re: Überlappender Barplot

Beitrag von foena1988 »

Wow, danke euch allen! Auch die ggplot-Variante sieht großartig aus :-)

Eine kleine Frage noch dazu: Ist es möglich, bei der ggplot-Variante die Legende um die "grauen Einträge" (reale Werte) zu erweitern?

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

Re: Überlappender Barplot

Beitrag von Athomas »

Ist es möglich, bei der ggplot-Variante die Legende um die "grauen Einträge" (reale Werte) zu erweitern?
Meiner Meinung nach: Nein, Deine Gestaltungswünsche passen nicht gut in das ggplot2-Konzept!
Was hältst Du von dieser Alternative:
.
RplotV2.jpeg
bigben
Beiträge: 2771
Registriert: Mi Okt 12, 2016 9:09 am

Re: Überlappender Barplot

Beitrag von bigben »

Als ich das erste Mal eine ggplot2-Grafik für eine Veröffentlichung genutzt habe, habe ich die Legende vorher noch in einem Bildbearbeitungsprogramm überarbeitet - ist lange her, kann man sich als Notnagel auch heute noch überlegen. Wenn alle anderen Stricke reißen macht man hat eine Grafik mit ggplot, die das gewünschte Bild ergibt und eine andere, die die gewünschte Legende ergibt und kopiert das dann in inkscape oder gimp zusammen.
An Athomas' letztem Post finde ich persönlich es etwas störend, dass die x-Achsenbeschriftung jetzt über statt unter den Daten steht; ist aber kein echtes Problem.

Grau in die base-Grafik-Legende einbauen ist nahezu banal:
Rplot08.png
Rplot08.png (6.04 KiB) 303 mal betrachtet

Code: Alles auswählen

bd <- read.csv2(file="http://forum.r-statistik.de/download/file.php?id=823")

plot(NA, xlim=c(.3,8.7), ylim=c(0,5.3), xlab="Rubrik", xaxt="n", ylab="y-Achse")
axis(1, at=1:8, labels=bd$Rubrik)
abline(h=seq(0,10,.5), col="lightgrey")
for(i in 1:8){
  rect(i-.4, 0, i+.4, bd$Realler.Wert[i], col="grey")
  for(j in 1:5)
    rect(i-.4+.16*(j-1), 0, i-.24+.16*(j-1), bd[i, j+2], 
         col=terrain.colors(5)[j])
}
legend("topright", fill=c("grey", terrain.colors(5)), inset=.02,
       legend=c("Realer Wert", "Schätzung 1", "Schätzung 2", 
                "Schätzung 3", "Schätzung 4", "Schätzung 5"))
LG,
Bernhard
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
Antworten