Frage

Gibt es eine Möglichkeit, eine mathematische Funktion auf den Daten mit ggplot Fall einer Überlagerung?

## 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 #?

In diesem Fall meine Daten erzeugt, um die Funktion, aber ich möchte wissen, wie curve() zu verwenden, um mit ggplot.

War es hilfreich?

Lösung

Sie wollen wahrscheinlich 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)

und wenn Sie wirklich verwenden curve() wollen, das heißt, die berechneten x- und y-Koordinaten:

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

Andere Tipps

Da Ihre Frage Titel „Plotten Funktionen in R“ ist, ist hier, wie curve verwenden, um eine Funktion zu einer Basis R Plot hinzuzufügen.

Erstellen Sie Daten nach wie vor

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

Dann plot von Basis Grafiken verwenden, um die Punkte von curve mit dem add=TRUE Argumente gefolgt plotten, die Kurve hinzuzufügen.

plot(x, y,  xlab = "X-axis", ylab = "Y-axis") 
curve(eq, add=TRUE)
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top