Punkte gewichten

Wie erstelle ich Grafiken, was ist zu beachten?

Moderatoren: EDi, jogo

Antworten
Moritz F.
Beiträge: 21
Registriert: Mo Jan 22, 2018 3:17 pm

Punkte gewichten

Beitrag von Moritz F. »

Hallo liebe R-Gemeinde,

ich möchte Punkte in einer Grafik gewichten. Ich habe eine Grafik mit 400 Punkten. Die X-Achse beschreibt die Hangneigung von 0-90° und die Y-Achse die Gerinneneigung von 0-90°.
Ich habe nun 400 Punkte die normalverteilt in der Graphik liegen und möchte nun diese Punkte größer und kleiner darstellen, da hinter jedem Punkt ein R² steckt.
Ich möchte also die höheren R² größer darstellen und einen "dritten" Faktor implementieren.
Kann mir jemand weiter helfen?

Vielen Dank schonmal
Moritz
bigben
Beiträge: 2771
Registriert: Mi Okt 12, 2016 9:09 am

Re: Punkte gewichten

Beitrag von bigben »

Hallo!

Ja, wir können Dir weiter helfen. Geht das in die richtige Richtung?

Code: Alles auswählen

x <- runif(20)
y <- runif(20)
s <- sample(1:5, 20, replace=TRUE)


plot(x, y, cex=s)
Je nach Vorliebe alternativ auch:

Code: Alles auswählen

library(ggplot2)
d.f <- data.frame(x = runif(20),
                  y = runif(20),
                  R_squared = runif(20,0,1))
ggplot(d.f) + geom_point(aes(x=x, y=y, size=R_squared))

LG,
Bernhard
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
Moritz F.
Beiträge: 21
Registriert: Mo Jan 22, 2018 3:17 pm

Re: Punkte gewichten

Beitrag von Moritz F. »

Vielen Dank für deine schnelle Antwort.
Ja es geht in die richtige Richtung.
Aber wenn ich deine Codes anwende habe ich immer nur ein range von 0-1.
Ich brauche ja die Neigung von 0-90 Grad und der Punkt soll als r² zwischen 0 und 1 größer werden.
Ich hab mal das geschrieben was ich bereits habe, dann wird es vll ersichtlicher.

Code: Alles auswählen

Tabelle=read.table("Tabelle.txt",sep ="\t" , header = TRUE)
x <- X-Achse
y <- Y-Achse
in cer dritten Spalte in der Tabelle steht die Größe des r²

Code: Alles auswählen

plot(x, y,xlim=c(0,90),ylim=c(0,90),ylab="Y",xlab="X",main="Überschrift",pch=19,cex=1)
MfG

Moritz
bigben
Beiträge: 2771
Registriert: Mi Okt 12, 2016 9:09 am

Re: Punkte gewichten

Beitrag von bigben »

Das bringt nicht viel Erkenntnis, weil wir ja Deine csv Datei nicht haben. Poste bitte mal das Ergebnis von

Code: Alles auswählen

str(Tabelle)
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
Moritz F.
Beiträge: 21
Registriert: Mo Jan 22, 2018 3:17 pm

Re: Punkte gewichten

Beitrag von Moritz F. »

> str(Tabelle)
'data.frame': 400 obs. of 4 variables:
$ PK_Nr : int 1 2 3 4 5 6 7 8 9 10 ...
$ GNSW : int 2 19 1 2 15 0 12 3 10 15 ...
$ HNSW : int 55 57 35 54 0 16 19 4 22 48 ...
$ Bestimmtheitsmaß_r²: num 0.1041 0.1049 0.2696 0.0992 0.3289 ...

LG Mo
dvf
Beiträge: 24
Registriert: Mo Feb 27, 2017 12:44 pm

Re: Punkte gewichten

Beitrag von dvf »

Wo ist das Problem?
Du brauchst doch für x und y nur GNSW und HNSW (oder umgekehrt) einzusetzen und je nach Darstellungswunsch cex oder size=Bestimmtheitsmaß_r² setzen.

Gruß
dvf
Moritz F.
Beiträge: 21
Registriert: Mo Jan 22, 2018 3:17 pm

Re: Punkte gewichten

Beitrag von Moritz F. »

Okay das klappt.
Kann ich jetzt noch bestimmten Bereichen (r² = 0.3-0.4 und r² = 0.4-0.5) bestimmte Punktgrößen zuordnen?
Danke schnonmal
LG Moritz
bigben
Beiträge: 2771
Registriert: Mi Okt 12, 2016 9:09 am

Re: Punkte gewichten

Beitrag von bigben »

Du kannst Dir mit apply oder ifelse Gruppenvariablen erstellen, etwa so:

Tabelle$Gruppe <- ifelse(Tabelle$Bestimmtheitsmaß_r² < 0.4, 1, 2)

und diese Gruppe kannst Du dann auch in Grafikanweisungen verwenden. Ich würde aber vorschlagen, dass nicht für die Größe, aber vielleicht für die Farbe zu verwenden

with(Tabelle, plot(GNSW, HNSW, col=Gruppe, cex=Bestimmtheitsmaß_r²,))

LG,
Bernhard
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
Moritz F.
Beiträge: 21
Registriert: Mo Jan 22, 2018 3:17 pm

Re: Punkte gewichten

Beitrag von Moritz F. »

Super das klappt :)
Ist es mir noch möglich Flächen um die Punkte herum (sozusagen ein buffer) in veschiedenen Grauflächen zu färben?
Vll hat da noch jemand eine Idee?

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

Re: Punkte gewichten

Beitrag von Athomas »

Zumindest in ggplot2 ist es möglich, verschiedene Layer übereinander zu plotten.
Du kannst dickere Punkte in Graufarben quasi als Basis verwenden und darüber die farbigen Punkte legen, etwa so:

Code: Alles auswählen

DF <- data.frame(x=1:10, wgt=runif(10, min=5, max=15), type=as.factor(sample(1:2,10,replace=TRUE)))
DF$y <- 2*DF$x - 3 + rnorm(10)

library(ggplot2)

Grafik <- ggplot(DF) +
            theme_bw() +
            geom_point(aes(x, y, size=wgt, alpha=wgt), colour="grey") +
            scale_alpha_continuous(range = c(0.3, 0.8)) +
            scale_size(range = c(4,15)) +
            geom_point(aes(x, y, colour=type), size=2) +
            scale_colour_manual(values=c("red","blue")) +
            guides(alpha=FALSE, size=FALSE)
Grafik
Antworten