UP | HOME |

Un gráfico ggplot sobre distancia y tiempo

Un gráfico ggplot sobre distancia y tiempo

Generamos unos datos de antes y después de un tratamiento y se han analizado los tiempos que se tarda en recorrer distintas distancias.

suppressPackageStartupMessages(library(tidyverse))
set.seed(123)
datos <- data.frame(distancia=rep(c(10,20,40,70,110),10))
datos$tipo  <- c("Antes","Desp.")
error  <- ifelse(datos$tipo=="Antes",0,0.3)
datos$tiempo  <- rnorm(length(datos$distancia),mean=datos$distancia + error, sd= sqrt(datos$distancia))

Calculamos los principales estadísticos asociados (media, desviación típica, mediana e intervalo de confianza).

datos_media <- datos %>%
    group_by(tipo,distancia) %>%
    summarize(media = mean(tiempo),
              sd=sd(tiempo),
              mediana=median(tiempo),
              n=n(),
              intconf1=t.test(tiempo)$conf.int[1],
              intconf2=t.test(tiempo)$conf.int[2])
as.data.frame(datos_media)

`summarise()` regrouping output by 'tipo' (override with `.groups` argument)
    tipo distancia      media       sd   mediana n   intconf1  intconf2
1  Antes        10   9.574699 2.969346   8.22762 5   5.887769  13.26163
2  Antes        20  21.741974 2.088909  22.22646 5  19.148251  24.33570
3  Antes        40  40.712404 7.734282  42.53470 5  31.109024  50.31578
4  Antes        70  68.912959 7.095076  67.44013 5  60.103259  77.72266
5  Antes       110 112.051366 8.551554 111.35598 5 101.433210 122.66952
6  Desp.        10  11.173305 5.082742  12.47767 5   4.862247  17.48436
7  Desp.        20  19.771101 1.204832  19.32519 5  18.275105  21.26710
8  Desp.        40  35.737627 5.577796  37.34861 5  28.811879  42.66338
9  Desp.        70  74.482278 9.140873  71.22604 5  63.132385  85.83217
10 Desp.       110 110.030501 7.676044 106.30959 5 100.499434 119.56157

Representamos visualmente los resultados.

library(ggplot2)
ggplot()+
    geom_point(aes(y=tiempo,x=distancia,color=tipo),data=datos) +
    geom_line(aes(y=media,x=distancia,color=tipo),datos_media)  +
    theme_bw() + theme(legend.position = c(0.87, 0.17)) +
    ylab("Tiempo (segundos)") + xlab("Distancia(metros)") +
    scale_x_continuous(breaks=c(10,20,40,70, 110))

grafico-distancia-tiempo.png