Profilplot (Big Five & FÜMO) in R erstellen

Wie erweitere ich R um eigene Funktionen oder Pakete? Welches Paket ist passend für meine Fragestellung?

Moderatoren: EDi, jogo

JSaam
Beiträge: 2
Registriert: Fr Mai 10, 2019 7:53 am

Profilplot (Big Five & FÜMO) in R erstellen

Beitrag von JSaam »

Hallo liebe R-Gemeinde,

ich bin aktuell auf der Suche nach einer Möglichkeit ein Profilbogen (ähnlich der angehangen Bilder) zu erstellen.
Abweichend zu den angehangenen Grafiken muss die Lösung nicht Bunt werden, jedoch würde ich gerne mehrere Profillinien eintragen und optional ebenfalls beide Auspägungen (Pole) beschriften.

Hat jemand eine Idee, einen Lösungsansatz oder gar ein BestPractice Beispiel?

Ich freue mich über eure Antworten.
Dateianhänge
Profilbogen.jpg
Bild1.jpg
bigben
Beiträge: 2771
Registriert: Mi Okt 12, 2016 9:09 am

Re: Profilplot (Big Five & FÜMO) in R erstellen

Beitrag von bigben »

Hi! Gibt es Vorgaben, ob Du das in base graphics oder in ggplot2 machen willst? Ein erster Schnellschuß zum weiter entwickeln in base könnte so aussehen:

Code: Alles auswählen

par(mar=c(5,6,2,6))
item <- c("Blubliität", "Wozitösität", "Mumelplutz", "Punktorientiertheit")
stanine <- c(3, 4, 8, 2)
plot(stanine, 1:length(item), type="b", xlim=c(1,9), 
     xaxt="n", yaxt="n",
     xlab="Stanine-Wert", ylab="")
axis(side=1, at=1:9)
axis(side=2, at=1:length(item), labels=item, las=1)
axis(side=4, at=1:length(item), labels=item, las=1)
abline(h=1:length(item), lty=3, col="grey")
abline(v=1:9, lty=3, col="grey")

roteStanine <- c(2, 3, 3, 4)
points(roteStanine, 1:length(item), col="darkred", type="b")

grüneStanine <- c(7, 2, 5, 8)
points(grüneStanine, 1:length(item), col="darkgreen", type="b")
LG,
Bernhard
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
JSaam
Beiträge: 2
Registriert: Fr Mai 10, 2019 7:53 am

Re: Profilplot (Big Five & FÜMO) in R erstellen

Beitrag von JSaam »

Hallo Bernhard,

vielen Dank für die schnelle Rückmeldung. Bisher arbeite ich immer mit ggplot2, wenn möglich würde ich dies am liebsten beibehalten. Das ist aber auch kein MUSS. :)

Dein Programm Schnippsel werde ich heute Abend mal ausprobieren - Vielen Dank dafür!

Gruß Jan
bigben
Beiträge: 2771
Registriert: Mi Okt 12, 2016 9:09 am

Re: Profilplot (Big Five & FÜMO) in R erstellen

Beitrag von bigben »

Hallo Jan,

das geht ganz ohne Zweifel auch in ggplot2 und wird wahrscheinlich irgendwie so anfangen:

Code: Alles auswählen

library(ggplot2)
personality <- data.frame(id = gl(3,4), item=gl(4,1, length=12), stanine = sample(1:9, 12, replace=TRUE))
p <- ggplot(personality) + geom_point(aes(x=item, y=stanine, color=id)) +
  geom_line(aes(x=item, y=stanine, group=id, color=id)) +
  coord_flip()
print(p)
Ich weiß aber, dass andere im Forum daraus mit weniger Aufwand einen schönen Plot machen können als ich (das mit den Skalen in ggplot2 ist nicht mein Ding und wird der Schwerpunkt Deines Problems) und deshalb werde ich mich bei einer ggplot2-Lösung zurückhalten.

Viel Glück noch,
Bernhard
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
ruedi_br
Beiträge: 159
Registriert: Do Mär 01, 2018 3:53 pm

Re: Profilplot (Big Five & FÜMO) in R erstellen

Beitrag von ruedi_br »

kuxtu hier:
https://www.r-graph-gallery.com/145-two ... ame-plot/ .
Und dann vermute ich mal, dass es mit einem "item" nicht getan ist, weil auf der zweite y-Achse ja die gegenteilige Aussage stehen soll?
Bei dem Beispiel also

Code: Alles auswählen

item1 <- c("Blubliität", "Wozitösität", "Mumelplutz", "Punktorientiertheit")
item2 <- c("Antiblubliität", "non-Wozitösität", "nicht-Mumelplutz", "Kreisorientiertheit")
?
Grüße
Ruedi
fortune(111)
bigben
Beiträge: 2771
Registriert: Mi Okt 12, 2016 9:09 am

Re: Profilplot (Big Five & FÜMO) in R erstellen

Beitrag von bigben »

@Ruedi Ja, die identische Beschriftung auf beiden Seiten war eine Abkürzung um erstmal zu fragen, ob das in die richtige Richtung geht. Ging es ja auch nicht, weil es nicht ggplot2 ist. Sehe ich das richtig, dass Dein Link zu lattice-Grafiken führt? Das wird dann ja optisch auch nur mäßig zu den sonstigen ggplot2-Grafiken passen.

LG,
Bernhard
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
ruedi_br
Beiträge: 159
Registriert: Do Mär 01, 2018 3:53 pm

Re: Profilplot (Big Five & FÜMO) in R erstellen

Beitrag von ruedi_br »

Danke Bernhard, hatte ich in der Eile übersehen :shock: .
Aber auch das "latbook (ggplot2 Version of Figures in Lattice: Multivariate Data Visualization with R) zeigt für eine Latticegrafik mit 2 y-Achsen keine Entsprechung in ggplot. Gehe mal davon aus, dass wenn auch der große Meister Hadley in seinen Ausführungen zu "ggplot - elegant graphics for data Analysis" nichts davon erwähnt, entsprechendes wohl derzeit nicht vorgesehen ist.
Bleibt also back to the root (base) oder lattice. Alternative (aber auch nicht so doll) mit entsprechendem Theme die ggplots umarbeiten?
LG
Ruedi
fortune(111)
Athomas
Beiträge: 768
Registriert: Mo Feb 26, 2018 8:19 pm

Re: Profilplot (Big Five & FÜMO) in R erstellen

Beitrag von Athomas »

ruedi_br hat geschrieben: Fr Mai 10, 2019 4:23 pm Gehe mal davon aus, dass wenn auch der große Meister Hadley in seinen Ausführungen zu "ggplot - elegant graphics for data Analysis" nichts davon erwähnt, entsprechendes wohl derzeit nicht vorgesehen ist.
https://rpubs.com/MarkusLoew/226759:
scale_x_continuous() and scale_y_continuous() can now display a secondary axis that is a one-to-one transformation of the primary axis (e.g. degrees Celcius to degrees Fahrenheit). The secondary axis will be positioned opposite to the primary axis and can be controlled with the sec.axis argument to the scale constructor."
Nachtrag: ich sehe gerade, dass die zweite y-Achse schon vor einem halben Jahr ein Thema war: viewtopic.php?t=1097 :oops:
ruedi_br
Beiträge: 159
Registriert: Do Mär 01, 2018 3:53 pm

Re: Profilplot (Big Five & FÜMO) in R erstellen

Beitrag von ruedi_br »

Wie in dem alten thread vom Großmeister Hadley erwähnt:
It's not possible in ggplot2 because I believe plots with separate y scales (not y-scales that are transformations of each other) are fundamentally flawed.
Diese spezielle Anwendung mit einer Achse als textlichem Gegenteil der anderen hat er sich wohl nicht vorstellen können. Danke für die Info, die bei einschlägigen ggplot-Beispielseiten wohl auch noch nicht angekommen ist. :(
Grüße
Ruedi
fortune(111)
bigben
Beiträge: 2771
Registriert: Mi Okt 12, 2016 9:09 am

Re: Profilplot (Big Five & FÜMO) in R erstellen

Beitrag von bigben »

Naja, vielleicht ist das ja auch alles gar nicht so schlimm. Es steht ja nirgends, dass man nicht die Achsen einfach unsichtbar macht und mittels geom_text an geeignete Stellen geeignete Bezeichnungen schreibt. Man wird ja pro Testverfahren eine Plot-Funktion schreiben und kann darin die Position der Bezeichnungen einfach hard-coden. Das lässt sich schon lösen, auch wenn man kein hardcore-ggplot2-Guru ist. Da der Threadersteller sich mit den Worten "werde ich heute Abend mal ausprobieren" vor viereinhalb Tagen verabschiedet hat und seither nicht mehr gesehen wurde, lohnt sich weiteres Grübel vorerst wohl nicht mehr.

FÜMO habe ich übrigens hier gefunden: https://www.testzentrale.de/shop/hambur ... entar.html

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