Question

Est-il possible de superposer une fonction mathématique sur des données en utilisant ggplot?

## add ggplot2
library(ggplot2)

# function
eq = function(x){x*x}

# Data                     
x = (1:50)     
y = eq(x)                                                               

# Make plot object    
p = qplot(    
x, y,   
xlab = "X-axis", 
ylab = "Y-axis",
) 

# Plot Equation     
c = curve(eq)  

# Combine data and function
p + c #?

Dans ce cas, mes données est générée à l'aide de la fonction, mais je veux comprendre comment utiliser curve() avec ggplot.

Était-ce utile?

La solution

Vous voulez probablement stat_function :

library("ggplot2")
eq <- function(x) {x*x}
tmp <- data.frame(x=1:50, y=eq(1:50))

# Make plot object
p <- qplot(x, y, data=tmp, xlab="X-axis", ylab="Y-axis")
c <- stat_function(fun=eq)
print(p + c)

et si vous voulez vraiment utiliser curve(), à savoir les coordonnées calculées x et y:

qplot(x, y, data=as.data.frame(curve(eq)), geom="line")

Autres conseils

Étant donné que le titre de votre question est « complote fonctions R », voici comment utiliser curve pour ajouter une fonction à une parcelle de base R.

Créer des données comme avant

eq = function(x){x*x}; x = (1:50); y = eq(x)

Utilisez ensuite plot de graphiques de base pour tracer les points, suivi de curve avec l'argument add=TRUE, pour ajouter la courbe.

plot(x, y,  xlab = "X-axis", ylab = "Y-axis") 
curve(eq, add=TRUE)
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top