Skip to content

[R-es] ggplot2 vs plot

4 messages · David Aguinaga, Marcelino de la Cruz Rot, MAURICIO MARDONES +1 more

#
Buenos días,

Estoy intentando representar una curva suavizada con smooth.spline() usando
ggplot2 en lugar de plot, que ofrece un gráfico más simple:

attach(cars)

cars.spline1 <- smooth.spline(speed, dist)

*# gráfico simple*
plot(speed, dist)
lines(cars.spline1, col="red")
[image: image.png]
*# ggplot2*
Quisiera usar ggplot2, pero el resultado que obtengo no es el mismo:

pet = ggplot() + geom_point(data = cars, aes(x = speed, y = dist), color =
"blue") + geom_line(data = cars, aes(x = speed, y = cars.spline1$data$y,
color = "red"))
[image: image.png]

------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <https://stat.ethz.ch/pipermail/r-help-es/attachments/20220513/58025315/attachment-0001.html>

------------ próxima parte ------------
A non-text attachment was scrubbed...
Name: image.png
Type: image/png
Size: 8359 bytes
Desc: no disponible
URL: <https://stat.ethz.ch/pipermail/r-help-es/attachments/20220513/58025315/attachment-0002.png>

------------ próxima parte ------------
A non-text attachment was scrubbed...
Name: image.png
Type: image/png
Size: 10922 bytes
Desc: no disponible
URL: <https://stat.ethz.ch/pipermail/r-help-es/attachments/20220513/58025315/attachment-0003.png>
#
Hola David:

Tienes que usar el geom específico para splines:

ggplot(cars, aes(speed, dist)) + geom_point() +   geom_smooth(method="gam")

Un saludo,

Marcelino


El 13/05/2022 a las 16:34, David Aguinaga escribió:

  
    
#
Hola David, 

Quizás esto te puede ayudar.

He comentado la lineas de los otros métodos de ajuste disponibles en la función status_smooth().

library("tidyverse")
pet <-  ggplot(data = cars, aes(x = speed, y = dist)) + 
  geom_point(stat="identity", color = "blue", alpha=0.9) + 
  stat_smooth(method="lm", color = "red")+
  #stat_smooth(method="loess", color = "red")+
  #stat_smooth(method="gam", color = "red")+
  theme_bw()
pet


Las salidas con ?loess? y ?lm"



Espero ayude 

Saludos

  
    
5 days later
#
David,

Digo que ya te lo habrán pasado, pero, por si acaso:

ggplot(data = cars, aes(x = speed, y = dist)) +
     geom_point(color = "blue") +
     geom_smooth(method = lm, color = 2) +
     theme_classic()

Está pensado con otra cabeza ggplot.

Es tipo: Escuchá GG, quiero hacer un grafico con los datos de /cars/, 
dibujame en x /speed/ y en y /dist/ + quiero que el gráfico sea de 
puntos, + y ya que estás, poneme una linea esfumada según la dispersion 
(que la linea sea una /lm/!) + ah! que se parezca a los graficos clásicos.

Suerte

22/5/13 16:34(e)an, David Aguinaga igorleak idatzi zuen: