Comment tracer une courbe de fonction en R
quelles sont les alternatives pour dessiner une courbe simple pour une fonction comme
eq = function(x){x*x}
en R?
cela semble une question si évidente, mais je n'ai pu trouver ces questions connexes sur stackoverflow, mais ils sont tous plus spécifiques
- fonction de ligne de tracé dans R
- fonctions de pointage en haut des points de données dans R
- comment tracer une fonction dans R avec des nombres complexes?
- comment tracer une fonction linéaire simple à la pièce?
- dessiner plus d'une fonction courbes dans le même graphe
j'espère que je n'ai pas écrit une question en double.
5 réponses
comme ça?
> eq = function(x){x*x}
> plot(eq(1:1000), type='l')
(ou n'importe quelle plage de valeurs est pertinente à votre fonction)
j'ai fait quelques recherches sur le web, et voici quelques façons que j'ai trouvées:
la façon la plus simple est d'utiliser la courbe sans fonction prédéfinie
curve(x^2, from=1, to=50, , xlab="x", ylab="y")
vous pouvez également utiliser la courbe lorsque vous avez une fonction prédéfinie
eq = function(x){x*x}
curve(eq, from=1, to=50, xlab="x", ylab="y")
si vous voulez utiliser ggplot, vous avez le choix entre qplot
library("ggplot2")
eq = function(x){x*x}
qplot(c(1,50), fun=eq, stat="function", geom="line", xlab="x", ylab="y")
et 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")
plot
a un plot.function
méthode
plot(eq, 1, 1000)
ou
curve(eq, 1, 1000)
Voici une version en treillis:
library(lattice)
eq<-function(x) {x*x}
X<-1:1000
xyplot(eq(X)~X,type="l")
solution de réseau avec des réglages supplémentaires dont j'avais besoin:
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 )
- si vous avez besoin de votre gamme de valeurs pour x tracées par incréments différents de 1, par exemple 0.00001 vous pouvez utiliser:
X < - seq(0,10,0.00001)
- Vous pouvez changer la couleur de votre ligne en définissant une valeur rvb:
col = rgb (rouge = 255, Vert = 90, Bleu = 0, maxColorValue = 255)
- vous pouvez modifier la largeur de la ligne tracée en paramétrant:
lwd = 2
- vous pouvez changer la taille des étiquettes en les mettant à l'échelle:
cex.laboratoire = 3.5, cex.axe = 3,5