BEschriftungen in GGPlot2

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

Moderatoren: EDi, jogo

Antworten
MJ95
Beiträge: 10
Registriert: Fr Apr 12, 2019 3:12 pm

BEschriftungen in GGPlot2

Beitrag von MJ95 »

Hallo ihr Lieben,

ich möchte einen Interaktionsplot mit der Funktion qplot erstellen und hab ein Problem, an dem ich nicht weiter komme. Hier die Funktion:

Code: Alles auswählen

qplot(x = xIdentGes, y = xBinary_F1, color=d1$QUESTNNR,
                   xlab="Identifikation m eig. Geschlecht", 
                   ylab="Glaube an Binarität")
                   +geom_point(color = "grey") 
                   +geom_smooth(method = "lm")
Dabei kommt dann folgendes Ergebnis raus:
photo_2019-05-31_16-39-20.jpg
Das sieht soweit schon mal ganz gut aus, allerdings möchte ich die Beschriftung der Legende ändern. Bei der X und Y Achse geht das ja einfach über xlab bzw. ylab, allerdings weiß ich nicht, wie ich dieses hässliche "d1$QUESTNNR" zu "Manipulation" ändern kann. Über Hilfe würde ich mich riesig freuen.

Viele Grüße
Martin
Athomas
Beiträge: 768
Registriert: Mo Feb 26, 2018 8:19 pm

Re: BEschriftungen in GGPlot2

Beitrag von Athomas »

Hufeisen
Beiträge: 162
Registriert: Fr Aug 31, 2018 6:34 pm

Re: BEschriftungen in GGPlot2

Beitrag von Hufeisen »

Hallo Martin,

ich bin in ggplot2 nicht so fit, aber du solltest versuchen statt mit qplot mit ggplot zu arbeiten - so steht es zumindest im Hilfstext für qplot :D.
Description

qplot is a shortcut designed to be familiar if you're used to base plot(). ...It's great for allowing you to produce plots quickly, but I highly recommend learning ggplot() as it makes it easier to create complex graphics.
Rest siehe Code:

Code: Alles auswählen

# Daten erzeugen
Daten <- data.frame(Daten_x = runif(40, 1, 100), Daten_y = rnorm(40, 10, 20))

# Daten plotten
ggplot(data = Daten) +
  labs(x = "Identifikation m eig. Geschlecht", y = "Glaube an Binarität") +
  geom_point(aes(x = Daten_x, y = Daten_y, color = "grey")) + # color ist Teil der aes() - dadurch entsteht die Legende
  geom_smooth(aes(x = Daten_x, y = Daten_y), method = "lm") +
  scale_color_discrete(labels = c("Trendlinie"), name = "beste Legende der Welt") + # hier kann man die Beschriftung ändern
  theme(legend.position = "bottom", plot.margin = unit(c(0, 0.5, 0, 0.5), units = "line"), legend.margin = margin(t = 0, b = 0)) # hier kann man total viel einstellen
Dateianhänge
Legendenbeschriftung in ggplot.png
Athomas
Beiträge: 768
Registriert: Mo Feb 26, 2018 8:19 pm

Re: BEschriftungen in GGPlot2

Beitrag von Athomas »

aber du solltest versuchen statt mit qplot mit ggplot zu arbeiten - so steht es zumindest im Hilfstext für qplot :D.
Ich würde das Ausweichen auf qplot eindeutig nicht empfehlen - zumindest mich hat das damals eher verwirrt!
MJ95
Beiträge: 10
Registriert: Fr Apr 12, 2019 3:12 pm

Re: BEschriftungen in GGPlot2

Beitrag von MJ95 »

Hufeisen hat geschrieben: Fr Mai 31, 2019 5:30 pm Hallo Martin,

ich bin in ggplot2 nicht so fit, aber du solltest versuchen statt mit qplot mit ggplot zu arbeiten - so steht es zumindest im Hilfstext für qplot :D.
Description

qplot is a shortcut designed to be familiar if you're used to base plot(). ...It's great for allowing you to produce plots quickly, but I highly recommend learning ggplot() as it makes it easier to create complex graphics.
Rest siehe Code:

Code: Alles auswählen

# Daten erzeugen
Daten <- data.frame(Daten_x = runif(40, 1, 100), Daten_y = rnorm(40, 10, 20))

# Daten plotten
ggplot(data = Daten) +
  labs(x = "Identifikation m eig. Geschlecht", y = "Glaube an Binarität") +
  geom_point(aes(x = Daten_x, y = Daten_y, color = "grey")) + # color ist Teil der aes() - dadurch entsteht die Legende
  geom_smooth(aes(x = Daten_x, y = Daten_y), method = "lm") +
  scale_color_discrete(labels = c("Trendlinie"), name = "beste Legende der Welt") + # hier kann man die Beschriftung ändern
  theme(legend.position = "bottom", plot.margin = unit(c(0, 0.5, 0, 0.5), units = "line"), legend.margin = margin(t = 0, b = 0)) # hier kann man total viel einstellen
Super, vielen Dank für die Hilfe!
Ich habs jetzt mal an meinen Datensatz angepasst, allerdings klappt es noch nicht so wirklich. Hier der Code, den ich geschrieben habe:

Code: Alles auswählen

ggplot(x=xIdentGes,y=xEinstGes,data=d1)+   
  labs(x="Identifikation m eig. Geschlecht",y="Einstellungen ggü trans* Person")+
  geom_point(aes(x=xIdentGes,y=xEinstGes,color=QUESTNNR))+
  geom_smooth(aes(x=xIdentGes,y=xEinstGes),method = "lm")+
  scale_color_discrete(labels=d1$QUESTNNR,name="Manipulation")+
  theme(legend.position = "right“)
Zur Info: d1 ist nen recht umfangreicher dataframe mit 79 Beobachtungen von 160 Variablen. xEinstGes und xIdentGes sind numerisch, QUESTNNR ist die Manipulation mit zwei Faktoren.
Hier die Fehlermeldung, sie ich bekomme:

Code: Alles auswählen

Warnmeldungen:
1: Removed 79 rows containing non-finite values (stat_smooth). 
2: Removed 79 rows containing missing values (geom_point).
Wieso werden durch den smooth befehl die Werte komplett gelöscht? Als Ergebnis erhalte ich einen korrekten Plot, allerdings ohne Datenpunkte (ist ja auch logisch aufgrund der Fehlermeldungen)
bigben
Beiträge: 2771
Registriert: Mi Okt 12, 2016 9:09 am

Re: BEschriftungen in GGPlot2

Beitrag von bigben »

Was sagt denn folgendes

Code: Alles auswählen

summary(d1[,c("xIdentGes", "xEinstGes", "QUESTNNR", "xBinary_F1")])
str(d1[,c("xIdentGes", "xEinstGes", "QUESTNNR", "xBinary_F1")])
head(d1[,c("xIdentGes", "xEinstGes", "QUESTNNR", "xBinary_F1")],15)
Gibt es da wirklich lauter nicht-finite und fehlende Werte?

LG,
Bernhard
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
MJ95
Beiträge: 10
Registriert: Fr Apr 12, 2019 3:12 pm

Re: BEschriftungen in GGPlot2

Beitrag von MJ95 »

bigben hat geschrieben: Mo Jun 03, 2019 4:42 pm Was sagt denn folgendes

Code: Alles auswählen

summary(d1[,c("xIdentGes", "xEinstGes", "QUESTNNR", "xBinary_F1")])
str(d1[,c("xIdentGes", "xEinstGes", "QUESTNNR", "xBinary_F1")])
head(d1[,c("xIdentGes", "xEinstGes", "QUESTNNR", "xBinary_F1")],15)
Gibt es da wirklich lauter nicht-finite und fehlende Werte?

LG,
Bernhard
Okay, ich hab den Fehler gefunden: xIdentGes ist 2x gespeichert. Einmal als Spalte in d1 und einmal als seperate Variable, ich muss letztere nehmen, dann klappts, da erstere nur aus NAs besteht. (I know, grausame Datenaufbereitung) Danke fürs drauf stoßen :D
bigben
Beiträge: 2771
Registriert: Mi Okt 12, 2016 9:09 am

Re: BEschriftungen in GGPlot2

Beitrag von bigben »

MJ95 hat geschrieben: Mo Jun 03, 2019 4:49 pmxIdentGes ist 2x gespeichert. Einmal als Spalte in d1 und einmal als seperate Variable [...] I know, grausame Datenaufbereitung
Wer kennt das nicht... :roll:
Danke fürs drauf stoßen :D
Das war nicht ich. Das war eine überraschend aussagekräftige Fehlermeldung von ggplot2.

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