swimmer_arrows {swimplot} | R Documentation |
Adding arrows to a swimmers plot
Description
This function allows you to add arrows to a swimmers plot created with
swimmer_plot
Usage
swimmer_arrows(
df_arrows,
id = "id",
arrow_start = "end",
cont = NULL,
adj.y = 0,
name_col = NULL,
arrow_positions = c(0.1, 1),
angle = 30,
length = 0.1,
type = "closed",
...
)
Arguments
df_arrows |
a data frame |
id |
column name for id, default is 'id' |
arrow_start |
column name with the arrow locations default is "end" |
cont |
a column name including an indicator of which ids have an arrow (NA is no arrow); when NULL will use all use all of df_arrows |
adj.y |
amount to adjust the line within the box vertically (default is 0, line is in the centre of each bar) |
name_col |
a column name to map the arrow colour |
arrow_positions |
a vector of the distance from the arrow start to end, default is c(0.1,1) |
angle |
the angle of the arrow head in degrees (smaller numbers produce narrower, pointier arrows). Essentially describes the width of the arrow head. Default is 30 |
length |
a unit specifying the length of the arrow head (from tip to base in inches (default is 0.1)' |
type |
one of "open" or "closed" indicating whether the arrow head should be a closed triangle. Default is 'closed' |
... |
additional geom_segment() arguments |
Value
a swimmer plot with arrows
See Also
swimmer_plot
swimmer_points
swimmer_lines
swimmer_lines
swimmer_points_from_lines
swimmer_text
Examples
#Mapping the arrows to the bars
swim_plot <-
swimmer_plot(df=ClinicalTrial.Arm,id='id',end='End_trt',name_fill='Arm',col="black",id_order
= 'Arm')
swim_plot_with_arrows <- swim_plot+
swimmer_arrows(df_arrows=ClinicalTrial.Arm,id='id',arrow_start='End_trt',
cont = 'Continued_treatment',name_col='Arm',show.legend = FALSE,type =
"open",cex=1.25)
swim_plot_with_arrows+
ggplot2::scale_color_manual(name="Treatment",values=c("#e41a1c", "#377eb8","#4daf4a"),drop=FALSE)+
ggplot2::scale_fill_manual(name="Treatment",values=c("#e41a1c", "#377eb8","#4daf4a"))+
ggplot2::ylab('Time (Days)')
#Mapping the arrows to lines
#Start with a base swimmer plot with lines and points
swim_plot <-
swimmer_plot(df=ClinicalTrial.Arm,id='id',end='End_trt',name_fill='Arm',col="black",id_order
= 'Arm')+ swimmer_lines(df_lines=ClinicalTrial.Response,id='id',start =
'Response_start',end='Response_end',name_col='Response',size=3)+
swimmer_points_from_lines(df_lines=ClinicalTrial.Response,id='id',start =
'Response_start',end = 'Response_end',cont =
'Continued_response',name_col='Response',size=4)
# Then add arrows to the plot
swim_plot_with_arrows <- swim_plot+
swimmer_arrows(df_arrows=ClinicalTrial.Response,id='id',arrow_start='Response_end',
cont = 'Continued_response',name_col='Response',show.legend = FALSE,type =
"open",cex=1.25)
# Add ggplot layers to improve the plot's aesthetic
swim_plot_with_arrows+
ggplot2::scale_color_manual(name="Response",values=c("grey20","grey80"))+
ggplot2::scale_fill_manual(name="Treatment",values=c("#e41a1c", "#377eb8","#4daf4a"))+
ggplot2::ylab('Time (Days)')+
ggplot2::guides(fill = ggplot2::guide_legend(override.aes = list(shape =
NA)))+
ggplot2::scale_shape_manual(name='',values=c(17,15),breaks =
c('Response_start','Response_end'),labels=c('Response Start','Response End'))