Hola, aunque con un poco de retraso, hago una aportación a este hilo:

Si tienes un problema con dos escalas de tiempo sobre las que evolucionan las lineas de seguimiento, creo que es mejor que hacer un solo gráfico en forma de   diagrama de Lexis, que dos gráficos independientes. Muestro ejemplo usando el paquete "Epi":

# Código ----------------------------------------------------

#---- Generar Datos ----
rm(list = ls())
set.seed(20)
XTIEMPO_2 = c(38, 2, 34, 29, 30, 3, 14, 8, 18, 31) # Per fe el gràfic amb t=0
set.seed(30)
XTIEMPO_0 = sample(1:40, 10, replace=F)
XTIEMPO_F = XTIEMPO_0 + XTIEMPO_2
set.seed(20)
XDEF = as.factor(sample(c("Mort", "Viu"), 10, replace=T))

DATOS <- data.frame (
  ID         = c (1:10)
  , TIEMPO_0 = XTIEMPO_0
  , TIEMPO_F = XTIEMPO_F
  , TIEMPO_2 = XTIEMPO_2 # Per fe el gràfic amb t=0
  , DEF      = XDEF
)


names(DATOS)[2:5] <- c('marriage.age',
                       'output.age',
                       'duration','output')

DATOS$output <- factor(DATOS$output,levels = c('Casado','Viu','Mort'))
DATOS$entry  <- factor('Casado',levels = c('Casado','Viu','Mort'))

# Crea objeto Lexis:
library(Epi)
lx.Datos <- Lexis( entry=list(antiguedad.del.matrimonio=0,
                               edad=marriage.age),
                    exit=list(edad=output.age),
                    entry.status = entry ,
                    exit.status = output ,id=ID,data=DATOS,merge=F)

#----  Muestra datos originales y transformados
DATOS
lx.Datos

#---- Grafica: ----

plot.Lexis(lx.Datos,time.scale = 1:2,col='blue')
with(lx.Datos, points(x=lex.dur,y=edad+lex.dur,
pch=c(NA,19,3)[as.integer(lex.Xst)],
                      col=1 ))
grid()
legend('bottomright',legend = levels(lx.Datos$lex.Xst)[-1],
       pch=c(19,3),col=1)

## ----------------------------------------------

On 19/7/19 15:03, Griera wrote:
Hola:

Por si a alguien le interesa para un curso, aquí coloco la versión
definitiva de los dos gráficos que quería hacer (uno en escala del tiempo del 
calendario y la otra el tiempo de seguimiento) realizados gracias a la ayuda
de Carlos Ortega.

Muchas gracias y saludos.

# Código ----------------------------------------------------
set.seed(20)
# TIEMPO_2 = sample(1:40, 10, replace=F)
XTIEMPO_2 = c(38, 2, 34, 29, 30, 3, 14, 8, 18, 31) # Per fe el gràfic amb t=0
set.seed(30)
XTIEMPO_0 = sample(1:40, 10, replace=F)
XTIEMPO_F = XTIEMPO_0 + XTIEMPO_2
set.seed(20)
# XDEF     = as.factor(sample(c(0,1), 10, replace=T))
XDEF = as.factor(sample(c("Mort", "Viu"), 10, replace=T))

DATOS <- data.frame (
          ID         = c (1:10)
        , TIEMPO_0 = XTIEMPO_0
        , TIEMPO_F = XTIEMPO_F
        , TIEMPO_2 = XTIEMPO_2 # Per fe el gràfic amb t=0
        , DEF      = XDEF
)

library(ggplot2)

## Gràfic amb temps calendari
ggplot( data = DATOS ) +
   geom_point( aes(x = TIEMPO_F, y = ID , shape = DEF), size = 5 ) +
   geom_segment( aes( x = TIEMPO_0, y = ID,   xend = TIEMPO_F, yend = ID ) ) +
   scale_shape_manual (values = c(4, 16))  +
   xlim (0, 70) +
   xlab ("Data (temps del calendari)") +
   ylab ("Persones") +
    guides(colour = FALSE) +
    labs(shape = ' ', values = c(4, 16)) +
    scale_y_discrete() +
   theme_classic() +
   theme(axis.text.x = element_blank(), axis.ticks.x = element_blank())
## Modificat
str (DATOS)
ggplot( data = DATOS ) +
   geom_point( aes(x = TIEMPO_2, y = ID , shape = DEF), size = 5 ) +
   scale_shape_manual (values = c(4, 16))  +
   geom_segment( aes( x = 0, y = ID,   xend = TIEMPO_2, yend = ID ) ) +
   xlim (0, 70) +
   xlab ("Temps de seguiment") +
   ylab ("Persones") +
    guides(colour = FALSE) +
    labs(shape = ' ', values = c(4, 16)) +
    scale_y_discrete() +
   theme_classic()

# Código ----------------------------------------------------


On Thu, 18 Jul 2019 14:21:24 +0200
Carlos Ortega <c...@qualityexcellence.es> wrote:

Hola,

Sí, lo puedes hacer de esta forma...

#-----------------
set.seed(20)
DATOS <- data.frame (
     ID      = c (1:10)
   , TIEMPO  = sample(1:40, 10, replace=F)
   , DEF     = as.factor(sample(c(0,1), 10, replace=T))
)

library(ggplot2)

   ggplot( data = DATOS ) +
    geom_point( aes(x = TIEMPO, y = ID , shape = DEF, color = DEF), size = 5
) +
    geom_segment( aes( x = 0, y = ID,  xend = TIEMPO, yend = ID ) ) +
     guides(colour = FALSE) +
     labs(shape = 'LEGEND') +
     scale_y_discrete() +
    theme_minimal()
#-----------------

E incluso puedes reproducirlo usando fuentes parecidas a la de los comics
con el paquete "xkcd".

Saludos,
Carlos Ortega
www.qualityexcellence.es



El jue., 18 jul. 2019 a las 13:05, Griera-yandex (<gri...@yandex.com>)
escribió:

Hola Pedro:

Gracias por la ayuda. No conocía esta manera más elegante de mostrar las
curvas de Kaplan-Meier. Te la compro.

En realidad quería mostrar un gráfico con la longitud de les tiempos de
seguimiento y al final un símbolo para indicar el estado. Seria un gráfico
similar a:

https://miro.medium.com/max/700/1*yHhG4TVcAAi29Ln88t0_5Q.png

Pero no encuentro la manera de hacerlo. Igual no se puede.

Muchas gracias y saludos.

On Thu, 18 Jul 2019 10:28:37 +0000
PEDRO CONCEJERO CEREZO <pedro.concejerocer...@telefonica.com> wrote:

Hola, te vale esto? Es forma estandar de representar graficos
supervivencia
Basado en esto:

https://rviews.rstudio.com/2017/09/25/survival-analysis-with-r/

set.seed(20)

DATOS <- data.frame (
   ID      = c (1:10)
   , TIEMPO  = sample(1:40, 10, replace=F)
   , DEF     = sample(0:1, 10, replace=T)
)

DATOS

library(survival)

DATOS$DEF <- as.numeric(DATOS$DEF)
DATOS$TIEMPO <- as.numeric(DATOS$TIEMPO)

s <- Surv(DATOS$TIEMPO, DATOS$DEF)
head(s)

## Kaplan-Meier estimator.
km <- survfit(s ~ 1,
               data = DATOS,
               conf.type = "log-log")

## Show object
km

summary(km)

plot(km)

# Instala las librerías necesarias:
library(ranger)
library(ggplot2)
library(dplyr)
library(ggfortify)

autoplot(km)


El 18/07/2019 a las 12:00, r-help-es-requ...@r-project.org<mailto:
r-help-es-requ...@r-project.org> escribió:
Envíe los mensajes para la lista R-help-es a
         r-help-es@r-project.org<mailto:r-help-es@r-project.org>

Para subscribirse o anular su subscripción a través de la WEB
         https://stat.ethz.ch/mailman/listinfo/r-help-es

O por correo electrónico, enviando un mensaje con el texto "help" en
el asunto (subject) o en el cuerpo a:
         r-help-es-requ...@r-project.org<mailto:
r-help-es-requ...@r-project.org>
Puede contactar con el responsable de la lista escribiendo a:
         r-help-es-ow...@r-project.org<mailto:
r-help-es-ow...@r-project.org>
Si responde a algún contenido de este mensaje, por favor, edite la
linea del asunto (subject) para que el texto sea mas especifico que:
"Re: Contents of R-help-es digest...". Además, por favor, incluya en
la respuesta sólo aquellas partes del mensaje a las que está
respondiendo.


Asuntos del día:

    1. Gráfico tiempos de supervivencia (Griera-yandex)

----------------------------------------------------------------------

Message: 1
Date: Thu, 18 Jul 2019 10:18:42 +0200
From: Griera-yandex <gri...@yandex.com><mailto:gri...@yandex.com>
To: Lista R <r-help-es@r-project.org><mailto:r-help-es@r-project.org>
Subject: [R-es] Gráfico tiempos de supervivencia
Message-ID: <20190718101842.280414d5@debian-dde>
Content-Type: text/plain; charset="utf-8"

Buenos días a todos:

Alguien me puede ayudar a hacer (si se puede) con unos datos similares a:

set.seed(20)
DATOS <- data.frame (
       ID      = c (1:10)
     , TIEMPO  = sample(1:40, 10, replace=F)
     , DEF     = sample(0:1, 10, replace=T)
                     );DATOS

un gráfico que muestre los tiempos de supervivencia similar a:
https://miro.medium.com/max/700/1*yHhG4TVcAAi29Ln88t0_5Q.png

Lo he intentado con la función followup.plot del paquete
"epiDisplay" (
https://cran.r-project.org/web/packages/epiDisplay/index.html),
pero no encuentro la forma.

Muchas gracias y saludos.




------------------------------

Subject: Pié de página del digest

_______________________________________________
R-help-es mailing list
R-help-es@r-project.org<mailto:R-help-es@r-project.org>
https://stat.ethz.ch/mailman/listinfo/r-help-es


------------------------------

Fin de Resumen de R-help-es, Vol 125, Envío 7
*********************************************


--
Pedro Concejero
Telefónica CDO - 4th Platform - Internal Use Cases
E-mail: pedro.concejerocer...@telefonica.com<mailto:
pedro.concejerocer...@telefonica.com>
skype: pedro.concejero
twitter @ConcejeroPedro<https://twitter.com/ConcejeroPedro>
linkedin pedroconcejero<http://www.linkedin.com/in/pedroconcejero/es>
eRReRo feliz, me puedes encontrar en gRupo R madRid <
http://madrid.r-es.org/?s=concejero&searchsubmit.x=21&searchsubmit.y=13>
________________________________

Este mensaje y sus adjuntos se dirigen exclusivamente a su destinatario,
puede contener información privilegiada o confidencial y es para uso
exclusivo de la persona o entidad de destino. Si no es usted. el
destinatario indicado, queda notificado de que la lectura, utilización,
divulgación y/o copia sin autorización puede estar prohibida en virtud de
la legislación vigente. Si ha recibido este mensaje por error, le rogamos
que nos lo comunique inmediatamente por esta misma vía y proceda a su
destrucción.
The information contained in this transmission is privileged and
confidential information intended only for the use of the individual or
entity named above. If the reader of this message is not the intended
recipient, you are hereby notified that any dissemination, distribution or
copying of this communication is strictly prohibited. If you have received
this transmission in error, do not read it. Please immediately reply to the
sender that you have received this communication in error and then delete
it.
Esta mensagem e seus anexos se dirigem exclusivamente ao seu
destinatário, pode conter informação privilegiada ou confidencial e é para
uso exclusivo da pessoa ou entidade de destino. Se não é vossa senhoria o
destinatário indicado, fica notificado de que a leitura, utilização,
divulgação e/ou cópia sem autorização pode estar proibida em virtude da
legislação vigente. Se recebeu esta mensagem por erro, rogamos-lhe que nos
o comunique imediatamente por esta mesma via e proceda a sua destruição
       [[alternative HTML version deleted]]

_______________________________________________
R-help-es mailing list
R-help-es@r-project.org
https://stat.ethz.ch/mailman/listinfo/r-help-es
_______________________________________________
R-help-es mailing list
R-help-es@r-project.org
https://stat.ethz.ch/mailman/listinfo/r-help-es


--
Saludos,
Carlos Ortega
www.qualityexcellence.es
_______________________________________________
R-help-es mailing list
R-help-es@r-project.org
https://stat.ethz.ch/mailman/listinfo/r-help-es

--
+--------------------------------------------------------------
| Francisco J. Viciana Fernández
| Dpto. Indicadores Demográficos
| Servicio de Estadísticas Demográficas y Sociales
| Instituto de Estadística y Cartografía de Andalucía
| Leonardo Da Vinci, nº 21. Isla de La Cartuja.
| 41071 SEVILLA.
| franciscoj.vici...@juntadeandalucia.es
+--------------------------------------------------------------

<<attachment: franciscoj_viciana.vcf>>

_______________________________________________
R-help-es mailing list
R-help-es@r-project.org
https://stat.ethz.ch/mailman/listinfo/r-help-es

Responder a