Rappresentare funzioni sulla cima di datapoint in R

C’è un modo di integrare una funzione matematica sulla cima di dati utilizzando 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 #?

In questo caso i miei dati viene generato utilizzando la funzione, ma voglio capire come utilizzare curve() con ggplot.

InformationsquelleAutor womble | 2009-12-05



2 Replies
  1. 16

    Probabilmente si desidera 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)

    e se vuoi davvero usare curve(), cioè, il calcolate le coordinate x e y:

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

    Dato che il titolo della domanda è “rappresentare funzioni in R”, ecco come utilizzare curve per aggiungere una funzione a una base di R trama.

    Creare dati come prima

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

    Quindi utilizzare plot dalla base grafica per tracciare i punti, seguito da curve con il add=TRUE argomento, per aggiungere la curva.

    plot(x, y,  xlab = "X-axis", ylab = "Y-axis") 
    curve(eq, add=TRUE)

Lascia un commento