--- title: Exploring toxicity using swimplot author: Jessica Weiss output: html_document: mathjax: default fig_caption: true toc: true section_numbering: true vignette: > %\VignetteEngine{knitr::rmarkdown} %\VignetteIndexEntry{Using swimplot to display toxicity} --- ```{r, include = FALSE} knitr::opts_chunk$set( collapse = TRUE, comment = "#>" ) ``` ```{r setup} library(swimplot) ``` ## Sample data A sample dataset displaying three types of toxicity for 5 patients over the course of a study ```{r, echo = TRUE,fig.align='centre'} d1 <- data.frame(pat=c('a','b','c','d','e'),end=c(3.26,15.45,14.84,3.51,7.44)) Nausea <- data.frame(pat=c('a','b','c','c','e'),tox="Nausea",grade=as.character(c(1,3,2,2,3)),time=c(2,1,8,10,1.5)) Fever <- data.frame(pat=c('d','e','e','c','c'),tox="Fever",grade=as.character(c(1,2,2,1,2)), time=c(1.5,3,6,2,6.5)) Anemia <- data.frame(pat=c('d','e','e','c','c'),tox="Anemia",grade=as.character(c(1,1,2,1,3)), time=c(1.5,3,5,2,6)) ``` Below are three different examples of ways to represent this data in a swimmers plot ## Example 1 Using numbers to represent the grade of the toxicity, and colour for the type ```{r, echo = TRUE,fig.align='centre'} swimmer_plot(df=d1,id='pat',end='end',col="black",fill='white')+ swimmer_points(df_points=Nausea,id='pat',time='time',adj.y = 0.3,size=4,name_shape = 'grade',name_col = 'tox',stroke=3)+ swimmer_points(df_points=Fever,id='pat',time='time',adj.y = 0,size=4,name_shape = 'grade',name_col = 'tox',stroke=3)+ swimmer_points(df_points=Anemia,id='pat',time='time',adj.y = -0.3,size=4,name_shape = 'grade',name_col = 'tox',stroke=3)+ ggplot2::scale_shape_manual(values=c("1","2","3")) + ggplot2::guides(shape=FALSE)+ ggplot2::scale_color_brewer(palette = "Dark2") ``` ## Example 2 Using colour to represent the grade of the toxicity, and shape for the type ```{r, echo = TRUE,fig.align='centre'} swimmer_plot(df=d1,id='pat',end='end',col="black",fill='white')+ swimmer_points(df_points=Nausea,id='pat',time='time',adj.y = 0.3,size=4,name_col = 'grade',name_shape = 'tox',stroke=3)+ swimmer_points(df_points=Fever,id='pat',time='time',adj.y = 0,size=4,name_col = 'grade',name_shape = 'tox',stroke=3)+ swimmer_points(df_points=Anemia,id='pat',time='time',adj.y = -0.3,size=4,name_col = 'grade',name_shape = 'tox',stroke=3)+ ggplot2::scale_color_manual(name="Grade",values=c("coral2","red3","orangered4")) ``` ## Example 3 Using colour and shape to represent the grade of the toxicity, and adding text to represent the type ```{r, echo = TRUE,fig.align='centre'} textdf1 <- data.frame(pat=unique(d1$pat),label="Nausea") textdf2 <- data.frame(pat=unique(d1$pat),label="Fever") textdf3 <- data.frame(pat=unique(d1$pat),label="Anemia") swimmer_plot(df=d1,id='pat',end='end',col="black",fill='white')+ swimmer_points(df_points=Nausea,id='pat',time='time',adj.y = 0.2,size=4,name_col = 'grade',name_shape = 'grade',stroke=3)+ swimmer_points(df_points=Fever,id='pat',time='time',adj.y = 0,size=4,name_col = 'grade',name_shape = 'grade',stroke=3)+ swimmer_points(df_points=Anemia,id='pat',time='time',adj.y = -0.2,size=4,name_col = 'grade',name_shape = 'grade',stroke=3)+ ggplot2::scale_color_manual(name="Grade",values=c("coral2","red3","orangered4")) + ggplot2::labs(shape="Grade")+ swimmer_text(df_text = textdf1,id='pat',label = 'label',adj.x = -2.2,adj.y = 0.2)+ swimmer_text(df_text = textdf2,id='pat',label = 'label',adj.x = -2.2,adj.y = 0)+ swimmer_text(df_text = textdf3,id='pat',label = 'label',adj.x = -2.2,adj.y = -0.2) ```