Seite 1 von 2

Funktionen plotten

Verfasst: Do Dez 10, 2020 10:08 pm
von Lagrange
Hallo zusammen,

ich möchte diese zwei Funktionen plotten. Wenn ich das mache, sind die Achsenbezeichnung überlagert. Könnte mir bitte jemand helfen, wie man diese Funktionen am besten plotten kann? Vielen Dank.

Code: Alles auswählen

Q=10
C=15

fun1 <- function(S) A=(Q^2)/S
S=c(0,1,2,3,4,5,6,7,8,9,10,11,12)
fun2 <- function(S) B=(C/1)-(2*S)


plot (fun1(S), type="l", col="blue")
par(new=TRUE)
plot (fun2(S), type="l", col="red")

Re: Funktionen plotten

Verfasst: Do Dez 10, 2020 10:19 pm
von EDi
Vielleicht reicht dir schon ?lines um die zweite Funktion als Linie in einen existierenden Plot zu zeichnen...

Re: Funktionen plotten

Verfasst: Do Dez 10, 2020 10:21 pm
von Lagrange
EDi hat geschrieben: Do Dez 10, 2020 10:19 pm Vielleicht reicht dir schon ?lines um die zweite Funktion als Linie in einen existierenden Plot zu zeichnen...
Danke für den Hinweis! Hatte hier mehrere Möglichkeiten entdeckt:
https://stackoverflow.com/questions/256 ... -plot-in-r
Q=10
C=15

fun1 <- function(S) A=(Q^2)/S
S=c(0,1,2,3,4,5,6,7,8,9,10,11,12)
fun2 <- function(S) B=(C/1)-(2*S)

plot (fun1(S), type="l", col="blue", ylim=c(0,30))
lines (fun2(S), type="l", col="red")
Ist es möglich die Funktionen auf den Graphen anzeigen zu lassen?

Re: Funktionen plotten

Verfasst: Do Dez 10, 2020 10:50 pm
von bigben
Meinst Du so?

Code: Alles auswählen

Q=10
C=15

fun1 <- function(S) (Q^2)/S
S=seq(0,12,.1)
fun2 <- function(S) (C/1)-(2*S)

plot(S, fun1(S), type="l", col="blue", ylim=c(0,30) ,ylab = "A bzw B")
lines(S, fun2(S), type="l", col="red")

text(4, 20, "blau", col = "blue")
text(6, 20, expression(A==frac(Q^2, S)), col = "blue")
text(4, 5, "rot", col = "red")
text(4, 10, expression(B==C-2*S), col = "red")
Beachte: Ich habe ein paar kleine Änderungen im Zeichen-Code vorgenommen. Jetzt stimmen auch die x-Werte in der Grafik.

LG,
Bernhard

Re: Funktionen plotten

Verfasst: Do Dez 10, 2020 10:55 pm
von Lagrange
Das ist schon mal sehr gut aus. Genau so etwas stellte ich mir vor. Allerdings ist die Schrift sehr groß. Dachte, man könnte es so machen, dass die Schrift entlang (auf) der linearen Funktion liegt. Man müsste den Text ein wenig drehen und ihn kleiner machen.

Re: Funktionen plotten

Verfasst: Do Dez 10, 2020 11:08 pm
von bigben
Lagrange hat geschrieben: Do Dez 10, 2020 10:55 pm Man müsste den Text ein wenig drehen und ihn kleiner machen.
Um wieviel man den Text drehen und kleiner machen muss hängt sehr davon ab, mit welchem Seitenverhältnis und in welcher Größe Du die Grafik anzeigen lässt. Grundsätzlich geht das mit cex und srt:

Code: Alles auswählen

text(8, 12, "blau blau blau", col = "blue", cex=.7, srt = -20)
text(5, 4, "rot rot rot", col = "red", cex = 1.2, srt = -27)
 
Lg,
Bernhard

Re: Funktionen plotten

Verfasst: Do Dez 10, 2020 11:13 pm
von Lagrange
Hallo Bernhard,

ich habe es fast geschafft, dass es "perfekt" für mich ausschaut, vor allem mit Deiner Hilfe! Vielen Dank dafür.

Code: Alles auswählen

text(70, 20, "red", col = "blue")
text(95, 20, expression(A==frac(Q^2, S)), col = "blue")
text(16, 16, "red", col = "red")
text(55, 10, expression(A==frac(C,pS)-frac(pA,pS)*S), col = "red")
Wie schaffe ich es nun das S als Subskript hinzubekommen? Also das S von p_S und natürlich das A von p_A.

Re: Funktionen plotten

Verfasst: Do Dez 10, 2020 11:26 pm
von bigben
Lese

Code: Alles auswählen

help(plotmath)
und suche dort nach dem Wort "subscript".

LG,
Bernhard

Re: Funktionen plotten

Verfasst: Do Dez 10, 2020 11:36 pm
von Lagrange
Super! Ich habe es gefunden!

Nun habe ich noch eine letzte Frage, dann bin ich zufrieden und ich habe heute eine Menge gelernt.

Kann es sein, dass ich einen Fehler gemacht habe, was das Plotten der Funktionen angeht?

Wenn ich für S einen Wert auswähle, z.B. 10, dann muss A=10 sein (die blaue Linie), da A=Q^2/S=100/10=10. Dies kann ich aus der Graphik aber nicht ablesen. Liegt bei mir ein Denkfehler? Stehe ich irgendwie auf dem Schlauch? Lassen sich die Achsen vielleicht derart anpassen, dass sie beide Funktionen besser darstellen?

Re: Funktionen plotten

Verfasst: Fr Dez 11, 2020 6:48 am
von bigben
Habe gerade noch keinen Rechner an. Dein Plot-Code und meiner unterscheiden sich. Tritt das mit meinem Code von gestern 22:50 Uhr auch auf?

LG,
Bernhard


Edit: Ja, so wie ich es oben gemacht hatte stimmt es mit dem Punkt (10; 10):

Code: Alles auswählen

Q <- 10
C <- 15
S <- seq(0,12,.1)
A <- function(S) (Q^2)/S
B <- function(S) (C/1)-(2*S)

plot(S, A(S), type="l", col="blue", ylim=c(0,30) ,ylab = "A bzw B")
abline(h = 10, col = "grey", lty=2)
abline(v = 10, col = "grey", lty=2)
lines(S, B(S), col="red")

text(6, 20, expression(A(S)==frac(Q^2, S)), col = "blue")
text(2, 6, expression(B(S)==C-2%.%S), col = "red")
Du hattest keine x-Koordinaten angegeben und dann geht R davon aus, dass es bei 1 zu zählen anfängt -- Deine Daten gingen aber bei Null los.