Moin
ich hab schon die letzten Tage versucht mich selber durch google und youtube zu kämpfen werde aber nicht fündig. Ich hoffe ihr könnt mir helfen.
Ich habe zwei Grafiken erstellen einmal mit gf_bar und boxplot. Bei beiden Grafiken handelt es sich um Auswertungen nach dem Geschlecht jedoch ist das Geschlecht in meiner Datenquelle in 0 und 1 kodiert und endsprechend auch in meinen Grafiken drin.
Daher meine Frage wie bekomme ich die 0 und 1 auf meiner x-Achse zu weiblich und männlich?
Zweites Problem. Ich habe ein Streudiagramm mit gf_point erzeugt und die Achsen entsprechend bezeichnet alles wunderbar. Wenn ich aber eine Regressionsgerade erstelle und diese mit plotmodel einfüge in die Grafik haut er mir die Beschriftung weg.
Wie bekomme ich die wieder rein?
Ich danke schonmal für die Hilfe.
Optimierung von Grafiken
Re: Optimierung von Grafiken
Hallo Ben,
willkommen im Forum!
Im Standardgrafiksystem verwendet man abline(...)
Gruß, Jörg
willkommen im Forum!
Normalerweise reicht es aus, dass die entsprechende Variable ein factor ist. Ohne Ansicht der Daten oder wenigstens der Struktur der Daten können wir das nicht beurteilen.ben87 hat geschrieben: ↑Mi Mär 20, 2019 10:12 am Ich habe zwei Grafiken erstellen einmal mit gf_bar und boxplot. Bei beiden Grafiken handelt es sich um Auswertungen nach dem Geschlecht jedoch ist das Geschlecht in meiner Datenquelle in 0 und 1 kodiert und endsprechend auch in meinen Grafiken drin.
Daher meine Frage wie bekomme ich die 0 und 1 auf meiner x-Achse zu weiblich und männlich?
Auch hierzu fehlt ein reproduzierbares Beispiel, siehe viewtopic.php?f=20&t=11Zweites Problem. Ich habe ein Streudiagramm mit gf_point erzeugt und die Achsen entsprechend bezeichnet alles wunderbar. Wenn ich aber eine Regressionsgerade erstelle und diese mit plotmodel einfüge in die Grafik haut er mir die Beschriftung weg.
Wie bekomme ich die wieder rein?
Im Standardgrafiksystem verwendet man abline(...)
Gruß, Jörg
Re: Optimierung von Grafiken
Ein reproduzierbares Beispiel und ein Lösungsvorschlag könnten so aussehen:
@jogo Falls es sich bei diesem gf_plot um eine Funktion aus dem package statisticalModeling handeln sollte, dann ist das lt. Beschreibung nicht Standardgrafik sondern ggplot2. plotModel gibt es im package mosaic. Da kommt dann lattice oder ggplot2 raus, aber auch keine Standardgrafik.
ad Ben87: In Standardgrafik könnte man das mit abline so machen:
Beide Code-Blöcke von mir kannst Du einfach per Copy&Paste in Deine R-Sitzung kopieren und sofort sehen, was passiert. Wäre cool, wenn Du uns vergleichbare Code-Blöcke (lauffähige Minimalbeispiele) liefern könntest.
LG,
Bernhard
Code: Alles auswählen
datensatz <- data.frame(gender = sample(0:1, 30, replace = TRUE),
value = rbeta(30,2,8))
datensatz$gender.factor <- as.factor(ifelse(datensatz$gender==0, yes="Männer", no="Frauen"))
boxplot(datensatz$value ~ datensatz$gender.factor)
ad Ben87: In Standardgrafik könnte man das mit abline so machen:
Code: Alles auswählen
datensatz <- data.frame(gender = sample(0:1, 30, replace = TRUE),
value = rbeta(30,2,8),
othervalue = rnorm(30))
model <- lm(value ~ othervalue, data = datensatz)
plot(value ~ othervalue, data = datensatz, col = gender+1, pch=16)
abline(model)
LG,
Bernhard
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
Re: Optimierung von Grafiken
ich hab das Paket mosaic genutzt und folgende Funktionen
Hier gab es einen Umfragebogen bei dem die Teilnehmer Weiblich / Männlich ankreuzen konnten. In der csv werden die Anworten mit 0 und 1 kodiert
Für die Problematik mit den Zahlen konvertieren habe ich folgende Funktionen genutzt:
gf_bar(~q_004.1, data = Gesundheitsreport, xlab="Geschlecht", ylab="Anzahl") ### Ziel: Wieviel Männer / Frauen haben an der Umfrage teilgenommen boxplot(q_001.2~ q_004.1, data=Gesundheitsreport, notch=TRUE, xlab="Geschlecht", ylab="Sportstunden / Woche") ### Ziel: Die Anzahl der Sportstunden nach Geschlecht zu analysieren
Für das Streudiagramm hatten die Teilnehmer bei beiden Feldern die Möglichkeit absolute Zahlen einzusetzen.
gf_point(q_001.2~q_004.2, data=Gesundheitsreport, xlab="Alter", ylab="Sportstunden / Woche")
Lineare Funktion des Streudiagramms
> KG.1 <- lm(q_001.2~q_004.2, data=Gesundheitsreport)
und für das einfügen in die Grafik
> plotModel(KG.1)
Ziel hier zu schauen ob ein Zusammenhang zwischen Alter und Sport besteht
Hier gab es einen Umfragebogen bei dem die Teilnehmer Weiblich / Männlich ankreuzen konnten. In der csv werden die Anworten mit 0 und 1 kodiert
Für die Problematik mit den Zahlen konvertieren habe ich folgende Funktionen genutzt:
gf_bar(~q_004.1, data = Gesundheitsreport, xlab="Geschlecht", ylab="Anzahl") ### Ziel: Wieviel Männer / Frauen haben an der Umfrage teilgenommen boxplot(q_001.2~ q_004.1, data=Gesundheitsreport, notch=TRUE, xlab="Geschlecht", ylab="Sportstunden / Woche") ### Ziel: Die Anzahl der Sportstunden nach Geschlecht zu analysieren
Für das Streudiagramm hatten die Teilnehmer bei beiden Feldern die Möglichkeit absolute Zahlen einzusetzen.
gf_point(q_001.2~q_004.2, data=Gesundheitsreport, xlab="Alter", ylab="Sportstunden / Woche")
Lineare Funktion des Streudiagramms
> KG.1 <- lm(q_001.2~q_004.2, data=Gesundheitsreport)
und für das einfügen in die Grafik
> plotModel(KG.1)
Ziel hier zu schauen ob ein Zusammenhang zwischen Alter und Sport besteht
- Dateianhänge
-
- boxplot.png (7.76 KiB) 951 mal betrachtet
-
- plotmodel.png (11.08 KiB) 951 mal betrachtet
Re: Optimierung von Grafiken
Und was ist jetzt die Frage?
Wie man die Zahlenspalte mit 0 und 1 in eine factor-spalte mit Beschriftung ("Mann"/"Frau") umwandelt, um eine Geschlechterbeschriftung in boxplot zu bekommen ist doch oben beantwortet.
Die zweite Abbildung ist eine gute Demo, wie man es nicht macht, weil man nie weiß, wieviele Punkte da übereinander liegen. Aber wenn Dir das so gefällt, dann gerne. Ich kenne diese Grafikfunktionen in mosaic nicht, aber versuch mal folgenden Schuss ins Blaue:
Hilft das?
Ansonsten versuch mal
Wie gefällt Dir das?
LG,
Bernhard
Wie man die Zahlenspalte mit 0 und 1 in eine factor-spalte mit Beschriftung ("Mann"/"Frau") umwandelt, um eine Geschlechterbeschriftung in boxplot zu bekommen ist doch oben beantwortet.
Die zweite Abbildung ist eine gute Demo, wie man es nicht macht, weil man nie weiß, wieviele Punkte da übereinander liegen. Aber wenn Dir das so gefällt, dann gerne. Ich kenne diese Grafikfunktionen in mosaic nicht, aber versuch mal folgenden Schuss ins Blaue:
Code: Alles auswählen
plotModel(KG.1) + xlab("Alter") + ylab("Sport: Wochenstunden")
Ansonsten versuch mal
Code: Alles auswählen
library(ggplot2)
ggplot(Gesundheitsreport, aes(x = q_004.2, y = q_001.2)) + geom_count() + xlab("Alter") + geom_smooth(method='lm')
LG,
Bernhard
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
Re: Optimierung von Grafiken
danke probiere ich heute Abend gleich mal aus.
Welche Funktion würdest du denn empfehlen?
Ich bin ein absoluter Anfänger und habe beruflich nichts mit Datenanalyse zu tun, ich muss das gerade für die Uni machen.
Welche Funktion würdest du denn empfehlen?
Re: Optimierung von Grafiken
Hallo ben87,
LG,
Bernhard
Ich weiß nicht, welche Vorgaben Dir von der Uni gemacht wurden. Zunächst einmal würde ich mich entscheiden, die Grafiken einheitlich entweder im Standardgrafiksystem oder in ggplot2 zu machen. Die haben eine sehr unterschiedliche Ästhetik und Du siehst ja, dass Dein Boxplot und Deine Punktwolke optisch nicht wirklich zueinander passen wollen. Beide Systeme können Boxplots und beide können Punktwolken mit Regressionsgeraden. Ich habe Dir einen noch nicht ganz fertigen Vorschlag für eine Alternative gepostet. Dabei sind die Punkte je nach Häufigkeit größer oder kleiner. Dazu hatte ich die Frage gestellt, wie Dir diese Alternative gefällt. Schwer was zu raten wenn wir nicht wissen, was Du haben willst.Welche Funktion würdest du denn empfehlen?
LG,
Bernhard
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte