Punkte gewichten
Punkte gewichten
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
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
Re: Punkte gewichten
Hallo!
Ja, wir können Dir weiter helfen. Geht das in die richtige Richtung?
Je nach Vorliebe alternativ auch:
LG,
Bernhard
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)
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
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
Re: Punkte gewichten
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.
in cer dritten Spalte in der Tabelle steht die Größe des r²
MfG
Moritz
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
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)
Moritz
Re: Punkte gewichten
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
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
Re: Punkte gewichten
> 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
'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
Re: Punkte gewichten
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
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
Re: Punkte gewichten
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
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
Re: Punkte gewichten
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
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
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
Re: Punkte gewichten
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
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
Re: Punkte gewichten
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:
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