3 Graphen in ein Diagramm, einer hat andere Zusammensetzung

Wie erstelle ich Grafiken, was ist zu beachten?

Moderatoren: EDi, jogo

pingu is my hero
Beiträge: 16
Registriert: Fr Jun 19, 2020 9:31 pm

3 Graphen in ein Diagramm, einer hat andere Zusammensetzung

Beitrag von pingu is my hero »

Rplot25.png
Rplot25.png (5.52 KiB) 815 mal betrachtet
Hi,
ich soll zwecks Studium den Trocknungsverlauf von 3 verschiedenen Geräten miteinander vergleichen (Gefriertrockner, Trockenschrank und Trockenwaage). Zuerst musste man nur den Trocknungsverlauf über der Zeit darstellen. Das war logischerweise easy. Jetzt soll ich aber ALLE DREI Graphen in ein Diagramm kriegen und sagen, wie die Trocknung nach 4 Stunden wäre (wir haben nur Messwerte bis 2 Stunden). An sich ist es ja kein Problem 3 Graphen in ein Diagramm rein zu kriegen, aber das dritte Gerät hat nur Messwerte bis eine Stunde. Das heißt also, ich kann den dritten Graphen schonmal nicht in die anderen 2 reinplotten (also ich weiß nicht wie). Dann müsste ich (vermutlich mit Regression) noch die Werte bis 4 Stunden (240min) ermitteln. Ich weiß gerade nicht ganz wie ich das schaffen soll. Ich hoffe mir kann hier jemand helfen.

Ich füge einige Bilder und codes ein, damit man sich hoffentlich ein Bild machen kann. Das Ganze sieht wie folgt aus (x ist Zeit in min und Messdaten sind Gewichtsanteil):


Code: Alles auswählen

x<- c(0,20,40,60,80, 100, 120)

Messdaten.1<- c(100,
                79.8808,
                74.5251,
                71.8246,
                69.0719,
                64.9911,
                64.3400)


Messdaten.2<- c(100,
                56.1904,
                36.8422,
                28.6058,
                25.0306,
                19.2943,
                23.0889)

Messdaten.3<- c(100,
                84.725,
                71.36,
                59.94,
                51.445,
                43.09,
                41.42,
                35.55,
                27.42,
                24.28,
                22.595,
                20.455)

x1<- c(0,5, 10, 15, 20, 30, 35, 40, 45, 50, 55, 60)

Jetzt plotte ich Graph für Graph, wobei ich den Befehl "
par(new=TRUE)" benutze. Jedoch geht das dann ja beim dritten nicht, weil der eine andere Zusammensetzung hat. Er hat mehr Messwerte, die aber nur bis eine Stunde reichen.


Bild





Ich hoffe mir kann jemand helfen. Bin etwas verzweifelt.

MfG
Zuletzt geändert von jogo am Fr Jun 19, 2020 10:48 pm, insgesamt 1-mal geändert.
Grund: Formatierung verbessert, siehe http://forum.r-statistik.de/viewtopic.php?f=20&t=29
bigben
Beiträge: 2771
Registriert: Mi Okt 12, 2016 9:09 am

Re: 3 Graphen in ein Diagramm, einer hat andere Zusammensetzung

Beitrag von bigben »

Wie gefällt Dir das?

Code: Alles auswählen

plot(x, Messdaten.1, type="b", ylim=c(0,100), ylab="Gewichtsanteil")
lines(x, Messdaten.2, type="b", col=2)
lines(x1, Messdaten.3, type="b", col=3)
legend("bottomleft", fill = 1:3, legend =c("eins", "zwei", "drei"), inset = .01)
HTH,
Bernhard
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
pingu is my hero
Beiträge: 16
Registriert: Fr Jun 19, 2020 9:31 pm

Re: 3 Graphen in ein Diagramm, einer hat andere Zusammensetzung

Beitrag von pingu is my hero »

WOW, das ist ja echt der Wahnsinn. Vielen lieben Dank.
Könnten Sie mir eventuell auch noch einen Tipp geben, wie ich die Werte bei 4 Stunden rein kriege? Ich müsste die Werte extrapolieren. Geht das in R?

Wenn Sie mir ein Buch empfehlen könnten (zum Thema R) wäre ich sehr verbunden.

MfG
Zuletzt geändert von pingu is my hero am Mo Jun 22, 2020 7:17 pm, insgesamt 1-mal geändert.
bigben
Beiträge: 2771
Registriert: Mi Okt 12, 2016 9:09 am

Re: 3 Graphen in ein Diagramm, einer hat andere Zusammensetzung

Beitrag von bigben »

Hallo,

hier im Forum sagen wir alle Du. In meinem Aufruf von plot findest Du das Argument ylim. Das gibt untere und obere Grenze der y-Achse an.

HTH,
Bernhard
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
pingu is my hero
Beiträge: 16
Registriert: Fr Jun 19, 2020 9:31 pm

Re: 3 Graphen in ein Diagramm, einer hat andere Zusammensetzung

Beitrag von pingu is my hero »

Hallo,
nochmals danke für die Hilfe, kannst du mir vielleicht noch sagen, wie ich in diesen Plot jetzt die Extrapolation (keine lineare) reinkriege? Ich will dir nicht auf die Nerven gehen, aber ich muss das Protokoll bald abgeben und es fehlt nur noch das...

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

Re: 3 Graphen in ein Diagramm, einer hat andere Zusammensetzung

Beitrag von bigben »

Du gehst mir nicht auf die Nerven, aber vielleicht hast Du am Wochenende drüber nachgedacht, wie Du die Extrapolation machen willst. Jetzt nicht in R, aber methodisch kommt es schon drauf an welche Verfahren gelehrt wurden. "Regression" war kein unpassender Begriff, ist aber etwas weit.

A propos weit: So entsteht Platz auf der x-Achse:

Code: Alles auswählen

x<- c(0,20,40,60,80, 100, 120)

Messdaten.1<- c(100,79.8808,74.5251,
                71.8246,69.0719,64.9911,
                64.3400)


Messdaten.2<- c(100,56.1904,36.8422,28.6058,
                25.0306,19.2943,23.0889)

Messdaten.3<- c(100,84.725,71.36,59.94,51.445,
                43.09,41.42,35.55,27.42,24.28,
                22.595,20.455)

x1<- c(0,5, 10, 15, 20, 30, 35, 40, 45, 50, 55, 60)

plot(x, Messdaten.1, type="b", ylim=c(0,100),, xlim=c(0,250), ylab="Gewichtsanteil")
lines(x, Messdaten.2, type="b", col=2)
lines(x1, Messdaten.3, type="b", col=3)
legend("bottomleft", fill = 1:3, legend =c("eins", "zwei", "drei"), inset = .01)
LG,
Bernhard
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
pingu is my hero
Beiträge: 16
Registriert: Fr Jun 19, 2020 9:31 pm

Re: 3 Graphen in ein Diagramm, einer hat andere Zusammensetzung

Beitrag von pingu is my hero »

Ich dachte an polynomische Extrapolation. Linear scheint mir doch etwas ungenau bei den Schwankungen. Ich habe leider in Moment am Wochenende Praktika, da wegen Corona jetzt alles auf einige Wochen gestaucht wurde.

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

Re: 3 Graphen in ein Diagramm, einer hat andere Zusammensetzung

Beitrag von bigben »

Polinomial extrapolieren über den Bereich hinaus, in dem man Werte hat ist gefährlich. An den Rändern machen die komische Dinge.
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
pingu is my hero
Beiträge: 16
Registriert: Fr Jun 19, 2020 9:31 pm

Re: 3 Graphen in ein Diagramm, einer hat andere Zusammensetzung

Beitrag von pingu is my hero »

Also es geht ja nicht um einen riesen Bereich, nur um das Doppelte von dem was bereits da ist. Ich muss eben die Werte irgendwie plausibel rauskriegen. Sind ja so oder so nur annähernd. Findest du linear dann doch besser, oder was würdest du empfehlen?

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

Re: 3 Graphen in ein Diagramm, einer hat andere Zusammensetzung

Beitrag von bigben »

pingu is my hero hat geschrieben: Mo Jun 22, 2020 8:26 pmAlso es geht ja nicht um einen riesen Bereich, nur um das Doppelte von dem was bereits da ist.
Ok, das kann ich so annehmen. Unten der Code für eine polynomiale Regression mit Polynomen 5. Grades. Der Fit an die gegebenen Punkte ist visuell beurteilt sehr gut. Solltest Du Polynome höheren oder niedrigeren Grades wünschen, musst Du halt die poly-Aufrufe finden und da was anderes als 5 reinschreiben.

Viel Erfolg damit und hoffentlich lernst Du was über polynomiale Regression.

Code: Alles auswählen

x<- c(0,20,40,60,80, 100, 120)
x1<- c(0,5, 10, 15, 20, 30, 35, 40, 45, 50, 55, 60)
Messdaten.1<- c(100,79.8808,74.5251,
                71.8246,69.0719,64.9911,
                64.3400)
Messdaten.2<- c(100,56.1904,36.8422,28.6058,
                25.0306,19.2943,23.0889)
Messdaten.3<- c(100,84.725,71.36,59.94,51.445,
                43.09,41.42,35.55,27.42,24.28,
                22.595,20.455)

plot(x, Messdaten.1, type="b", ylim=c(0,300),, xlim=c(0,240), ylab="Gewichtsanteil")
axis(1, at = 240)
lines(x, Messdaten.2, type="b", col=2)
lines(x1, Messdaten.3, type="b", col=3)
legend("topleft", fill = 1:3, legend =c("eins", "zwei", "drei"), inset = .01)
abline(v = 240, col ="lightgrey", lty=2)

mod1 <- lm(Messdaten.1 ~ poly(x, 5))
mod2 <- lm(Messdaten.2 ~ poly(x, 5))
mod3 <- lm(Messdaten.3 ~ poly(x1, 5))
draw <- data.frame(x = seq(0,240,2), x1 = seq(0,240,2))
lines(draw$x, predict(mod1, draw))
lines(draw$x, predict(mod2, draw), col = 2)
lines(draw$x1, predict(mod3, draw), col = 3)

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