2011-03-03 12 views
52

¿Existe un método equivalente para trazar funciones usando ggplot al comando curve() empleado en gráficos base? Supongo que la alternativa sería crear un vector de valores de la función y trazar una línea conectada, pero esperaba algo un poco más simple.Equivalente a la curva() para ggplot

Gracias!

Respuesta

54

Puede añadir una curva con el stat_function:

ggplot(data.frame(x=c(0, 10)), aes(x)) + stat_function(fun=sin) 

También es posible utilizar qplot, pero no está claro si esto es más simple:

qplot(c(0,2), fun=sin, stat="function", geom="line") 

Si su función de curva es más complicado, luego use una función lambda. Por ejemplo,

ggplot(data.frame(x=c(0, 10)), aes(x)) + 
    stat_function(fun=function(x) sin(x) + log(x)) 

se pueden encontrar otros ejemplos en http://kohske.wordpress.com/2010/12/25/draw-function-without-data-in-ggplot2/

+2

Por' qplot (c (0,2), diversión = sen, stat = "función", geom = "línea") ',' stat' está en desuso en 2016 y 'fun' ya no es un parámetro aceptable. – akhmed

1

El "hoja.de.datos" ejemplo anterior funciona bien, y hace que las líneas de cuadrícula. El ejemplo 'qplot' no funciona en ggplot2 2.2.0 por las razones dadas.

También puede usar la función "curva" en ggplot2 2.2.0, pero no crea automáticamente líneas de cuadrícula ni color de fondo. Por ejemplo: curve (cos (x), from = 0, to = pi/2).

El "ggplot (hoja.de.datos (...) método da la impresionante gama de opciones de formato de ggplot2. Me gusta.

Cuestiones relacionadas