Jak wykreślić krzywą funkcji w R
Jakie są alternatywy dla rysowania prostej krzywej dla funkcji typu
eq = function(x){x*x}
W R?
Brzmi to tak oczywiste pytanie, ale mogłem znaleźć te powiązane pytania tylko na stackoverflow, ale wszystkie są bardziej szczegółowe
Mam nadzieję, że nie napisałem duplikatu.5 answers
Masz na myśli tak?
> eq = function(x){x*x}
> plot(eq(1:1000), type='l')
(lub jakikolwiek zakres wartości jest istotny dla twojej funkcji)
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-09-29 01:24:45
Trochę szukałem w sieci i oto kilka sposobów, które znalazłem:
Najprostszym sposobem jest użycie krzywej bez predefiniowanej funkcji
curve(x^2, from=1, to=50, , xlab="x", ylab="y")
Możesz również użyć curve, gdy masz predefiniowaną funkcję
eq = function(x){x*x}
curve(eq, from=1, to=50, xlab="x", ylab="y")
Jeśli chcesz użyć ggplot, masz wybór pomiędzy qplot
library("ggplot2")
eq = function(x){x*x}
qplot(c(1,50), fun=eq, stat="function", geom="line", xlab="x", ylab="y")
I ggplot
library("ggplot2")
eq = function(x){x*x}
ggplot(data.frame(x=c(1, 50)), aes(x=x)) + stat_function(fun=eq, geom="line") + xlab("x") + ylab("y")
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-09-29 01:29:12
plot
posiada metodę plot.function
plot(eq, 1, 1000)
Lub
curve(eq, 1, 1000)
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-09-29 01:29:04
Oto wersja kratowa:
library(lattice)
eq<-function(x) {x*x}
X<-1:1000
xyplot(eq(X)~X,type="l")
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-09-29 13:00:55
Rozwiązanie Kratowe z dodatkowymi ustawieniami, które potrzebowałem:
library(lattice)
distribution<-function(x) {2^(-x*2)}
X<-seq(0,10,0.00001)
xyplot(distribution(X)~X,type="l", col = rgb(red = 255, green = 90, blue = 0, maxColorValue = 255), cex.lab = 3.5, cex.axis = 3.5, lwd=2 )
- Jeśli potrzebujesz zakresu wartości dla x wykreślonego w krokach różnej od 1, np. 0.00001 możesz użyć:
X
- możesz zmienić kolor linii, definiując wartość rgb:
Col = rgb (red = 255, green = 90, blue = 0, maxColorValue = 255)
- można zmienić szerokość wykreślonej linii przez ustawienie:
Lwd = 2
- możesz zmienić rozmiar etykiet skalując je:
Cex.lab = 3,5, cex.oś = 3.5
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-04-05 09:14:19