Seite 1 von 1
BEschriftungen in GGPlot2
Verfasst: Fr Mai 31, 2019 4:46 pm
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:
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
Re: BEschriftungen in GGPlot2
Verfasst: Fr Mai 31, 2019 5:11 pm
von Athomas
Re: BEschriftungen in GGPlot2
Verfasst: Fr Mai 31, 2019 5:30 pm
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

.
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
Re: BEschriftungen in GGPlot2
Verfasst: Fr Mai 31, 2019 6:53 pm
von Athomas
aber du solltest versuchen statt mit qplot mit ggplot zu arbeiten - so steht es zumindest im Hilfstext für qplot

.
Ich würde das Ausweichen auf qplot eindeutig nicht empfehlen - zumindest mich hat das damals eher verwirrt!
Re: BEschriftungen in GGPlot2
Verfasst: Mo Jun 03, 2019 4:19 pm
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

.
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)
Re: BEschriftungen in GGPlot2
Verfasst: Mo Jun 03, 2019 4:42 pm
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
Re: BEschriftungen in GGPlot2
Verfasst: Mo Jun 03, 2019 4:49 pm
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

Re: BEschriftungen in GGPlot2
Verfasst: Mo Jun 03, 2019 5:08 pm
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...
Danke fürs drauf stoßen

Das war nicht ich. Das war eine überraschend aussagekräftige Fehlermeldung von ggplot2.
LG,
Bernhard