How to reorder a variable to be plotted

Hi,

I want to plot "Stomach" where "Breast" is now on the plot attached, and "Breast" where "Stomach" is now on the plot attached. My original dataset has many more cancer sites to be plotted so I'd like to learn how to plot the variables in a specific order and not the default one. I'm using facet_wrap for the plotting.

library(tidyverse)

trends <- data.frame(stringsAsFactors=FALSE,
                    Year = c(1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
                                                2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010,
                                                2011, 2012, 2013, 2014, 2015, 2016, 2017, 1991, 1992, 1993, 1994,
                                                1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
                                                2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015,
                                                2016, 2017, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
                                                2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009,
                                                2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 1991, 1992, 1993,
                                                1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
                                                2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014,
                                                2015, 2016, 2017, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
                                                2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015,
                                                2016, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
                                                2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016,
                                                1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007,
                                                2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 1997,
                                                1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008,
                                                2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016),
                    Rate = c(19.5, 22.1, 13.3, 18.7, 15, 15.1, 18.1, 19.8, 21.8, 20.4,
                                                15.6, 15.8, 16.3, 11.2, 16.6, 12.9, 16.1, 13.6, 16.5, 11.5,
                                                14.7, 9.3, 11.8, 11.1, 15.4, 14.8, 13.8, 30.6, 27.9, 32.7, 30.1,
                                                23.4, 37.4, 27.5, 32.2, 18.3, 27.9, 33.2, 21.8, 26.1, 31.3, 25.9,
                                                34.8, 20.5, 18.8, 20.7, 24.5, 23.6, 20.5, 26.1, 20.4, 24.2,
                                                15.4, 20.5, 19.42, 19.1, 18.79, 18.48, 18.18, 17.89, 17.59, 17.31,
                                                17.02, 16.74, 16.47, 16.2, 15.94, 15.68, 15.42, 15.17, 14.92,
                                                14.68, 14.44, 14.2, 13.97, 13.74, 13.52, 13.3, 13.08, 12.86,
                                                12.65, 32.12, 31.59, 31.07, 30.56, 30.06, 29.56, 29.08, 28.6, 28.13,
                                                27.67, 27.22, 26.77, 26.33, 25.9, 25.47, 25.05, 24.64, 24.24,
                                                23.84, 23.45, 23.06, 22.69, 22.31, 21.95, 21.59, 21.23, 20.88,
                                                22.2, 25.8, 26.1, 19.8, 19.8, 23.3, 23.6, 23.3, 21.8, 16.1, 16.7,
                                                17.5, 21.9, 19.1, 22.3, 15.6, 20, 21.1, 23.6, 17.5, 81.8, 79.9,
                                                77.2, 68, 80.7, 81, 67.5, 79.8, 72.1, 83, 72.1, 81.5, 99.9, 96.5,
                                                86.4, 88.4, 89.8, 90.7, 84.8, 94.8, 23.2, 22.96, 22.72, 22.49,
                                                22.25, 22.02, 21.79, 21.56, 21.34, 21.12, 20.9, 20.68, 20.47,
                                                20.25, 20.04, 19.83, 19.63, 19.42, 19.22, 19.02, 74.24, 75.1,
                                                75.98, 76.86, 77.76, 78.66, 79.58, 80.51, 81.44, 82.39, 83.35,
                                                84.32, 85.31, 86.3, 87.3, 88.32, 89.35, 90.39, 91.44, 92.51),
                    Site = c("Stomach", "Stomach", "Stomach", "Stomach", "Stomach",
                                                "Stomach", "Stomach", "Stomach", "Stomach", "Stomach",
                                                "Stomach", "Stomach", "Stomach", "Stomach", "Stomach", "Stomach",
                                                "Stomach", "Stomach", "Stomach", "Stomach", "Stomach", "Stomach",
                                                "Stomach", "Stomach", "Stomach", "Stomach", "Stomach", "Breast",
                                                "Breast", "Breast", "Breast", "Breast", "Breast", "Breast",
                                                "Breast", "Breast", "Breast", "Breast", "Breast", "Breast", "Breast",
                                                "Breast", "Breast", "Breast", "Breast", "Breast", "Breast",
                                                "Breast", "Breast", "Breast", "Breast", "Breast", "Breast",
                                                "Breast", "Stomach", "Stomach", "Stomach", "Stomach", "Stomach",
                                                "Stomach", "Stomach", "Stomach", "Stomach", "Stomach", "Stomach",
                                                "Stomach", "Stomach", "Stomach", "Stomach", "Stomach", "Stomach",
                                                "Stomach", "Stomach", "Stomach", "Stomach", "Stomach", "Stomach",
                                                "Stomach", "Stomach", "Stomach", "Stomach", "Breast", "Breast",
                                                "Breast", "Breast", "Breast", "Breast", "Breast", "Breast",
                                                "Breast", "Breast", "Breast", "Breast", "Breast", "Breast", "Breast",
                                                "Breast", "Breast", "Breast", "Breast", "Breast", "Breast",
                                                "Breast", "Breast", "Breast", "Breast", "Breast", "Breast",
                                                "Stomach", "Stomach", "Stomach", "Stomach", "Stomach", "Stomach",
                                                "Stomach", "Stomach", "Stomach", "Stomach", "Stomach", "Stomach",
                                                "Stomach", "Stomach", "Stomach", "Stomach", "Stomach", "Stomach",
                                                "Stomach", "Stomach", "Breast", "Breast", "Breast", "Breast",
                                                "Breast", "Breast", "Breast", "Breast", "Breast", "Breast",
                                                "Breast", "Breast", "Breast", "Breast", "Breast", "Breast", "Breast",
                                                "Breast", "Breast", "Breast", "Stomach", "Stomach", "Stomach",
                                                "Stomach", "Stomach", "Stomach", "Stomach", "Stomach", "Stomach",
                                                "Stomach", "Stomach", "Stomach", "Stomach", "Stomach",
                                                "Stomach", "Stomach", "Stomach", "Stomach", "Stomach", "Stomach",
                                                "Breast", "Breast", "Breast", "Breast", "Breast", "Breast", "Breast",
                                                "Breast", "Breast", "Breast", "Breast", "Breast", "Breast",
                                                "Breast", "Breast", "Breast", "Breast", "Breast", "Breast",
                                                "Breast"),
                    Type = c("Observed", "Observed", "Observed", "Observed", "Observed",
                                                "Observed", "Observed", "Observed", "Observed", "Observed",
                                                "Observed", "Observed", "Observed", "Observed", "Observed",
                                                "Observed", "Observed", "Observed", "Observed", "Observed",
                                                "Observed", "Observed", "Observed", "Observed", "Observed", "Observed",
                                                "Observed", "Observed", "Observed", "Observed", "Observed",
                                                "Observed", "Observed", "Observed", "Observed", "Observed",
                                                "Observed", "Observed", "Observed", "Observed", "Observed", "Observed",
                                                "Observed", "Observed", "Observed", "Observed", "Observed",
                                                "Observed", "Observed", "Observed", "Observed", "Observed",
                                                "Observed", "Observed", "Modeled", "Modeled", "Modeled", "Modeled",
                                                "Modeled", "Modeled", "Modeled", "Modeled", "Modeled", "Modeled",
                                                "Modeled", "Modeled", "Modeled", "Modeled", "Modeled", "Modeled",
                                                "Modeled", "Modeled", "Modeled", "Modeled", "Modeled", "Modeled",
                                                "Modeled", "Modeled", "Modeled", "Modeled", "Modeled",
                                                "Modeled", "Modeled", "Modeled", "Modeled", "Modeled", "Modeled",
                                                "Modeled", "Modeled", "Modeled", "Modeled", "Modeled", "Modeled",
                                                "Modeled", "Modeled", "Modeled", "Modeled", "Modeled", "Modeled",
                                                "Modeled", "Modeled", "Modeled", "Modeled", "Modeled", "Modeled",
                                                "Modeled", "Modeled", "Modeled", "Observed", "Observed",
                                                "Observed", "Observed", "Observed", "Observed", "Observed", "Observed",
                                                "Observed", "Observed", "Observed", "Observed", "Observed",
                                                "Observed", "Observed", "Observed", "Observed", "Observed",
                                                "Observed", "Observed", "Observed", "Observed", "Observed", "Observed",
                                                "Observed", "Observed", "Observed", "Observed", "Observed",
                                                "Observed", "Observed", "Observed", "Observed", "Observed",
                                                "Observed", "Observed", "Observed", "Observed", "Observed", "Observed",
                                                "Modeled", "Modeled", "Modeled", "Modeled", "Modeled",
                                                "Modeled", "Modeled", "Modeled", "Modeled", "Modeled", "Modeled",
                                                "Modeled", "Modeled", "Modeled", "Modeled", "Modeled", "Modeled",
                                                "Modeled", "Modeled", "Modeled", "Modeled", "Modeled", "Modeled",
                                                "Modeled", "Modeled", "Modeled", "Modeled", "Modeled", "Modeled",
                                                "Modeled", "Modeled", "Modeled", "Modeled", "Modeled", "Modeled",
                                                "Modeled", "Modeled", "Modeled", "Modeled", "Modeled"),
                  Metric = c("Mortality", "Mortality", "Mortality", "Mortality",
                                                "Mortality", "Mortality", "Mortality", "Mortality",
                                                "Mortality", "Mortality", "Mortality", "Mortality", "Mortality",
                                                "Mortality", "Mortality", "Mortality", "Mortality", "Mortality",
                                                "Mortality", "Mortality", "Mortality", "Mortality", "Mortality",
                                                "Mortality", "Mortality", "Mortality", "Mortality", "Mortality",
                                                "Mortality", "Mortality", "Mortality", "Mortality", "Mortality",
                                                "Mortality", "Mortality", "Mortality", "Mortality", "Mortality",
                                                "Mortality", "Mortality", "Mortality", "Mortality", "Mortality",
                                                "Mortality", "Mortality", "Mortality", "Mortality", "Mortality",
                                                "Mortality", "Mortality", "Mortality", "Mortality", "Mortality",
                                                "Mortality", "Mortality", "Mortality", "Mortality", "Mortality",
                                                "Mortality", "Mortality", "Mortality", "Mortality", "Mortality",
                                                "Mortality", "Mortality", "Mortality", "Mortality",
                                                "Mortality", "Mortality", "Mortality", "Mortality", "Mortality",
                                                "Mortality", "Mortality", "Mortality", "Mortality", "Mortality",
                                                "Mortality", "Mortality", "Mortality", "Mortality", "Mortality",
                                                "Mortality", "Mortality", "Mortality", "Mortality", "Mortality",
                                                "Mortality", "Mortality", "Mortality", "Mortality", "Mortality",
                                                "Mortality", "Mortality", "Mortality", "Mortality", "Mortality",
                                                "Mortality", "Mortality", "Mortality", "Mortality", "Mortality",
                                                "Mortality", "Mortality", "Mortality", "Mortality", "Mortality",
                                                "Mortality", "Incidence", "Incidence", "Incidence", "Incidence",
                                                "Incidence", "Incidence", "Incidence", "Incidence", "Incidence",
                                                "Incidence", "Incidence", "Incidence", "Incidence", "Incidence",
                                                "Incidence", "Incidence", "Incidence", "Incidence", "Incidence",
                                                "Incidence", "Incidence", "Incidence", "Incidence",
                                                "Incidence", "Incidence", "Incidence", "Incidence", "Incidence",
                                                "Incidence", "Incidence", "Incidence", "Incidence", "Incidence",
                                                "Incidence", "Incidence", "Incidence", "Incidence", "Incidence",
                                                "Incidence", "Incidence", "Incidence", "Incidence", "Incidence",
                                                "Incidence", "Incidence", "Incidence", "Incidence", "Incidence",
                                                "Incidence", "Incidence", "Incidence", "Incidence", "Incidence",
                                                "Incidence", "Incidence", "Incidence", "Incidence", "Incidence",
                                                "Incidence", "Incidence", "Incidence", "Incidence", "Incidence",
                                                "Incidence", "Incidence", "Incidence", "Incidence", "Incidence",
                                                "Incidence", "Incidence", "Incidence", "Incidence", "Incidence",
                                                "Incidence", "Incidence", "Incidence", "Incidence", "Incidence",
                                                "Incidence", "Incidence")
            )

ggplot(mapping = aes (Year, Rate)) +
         geom_line (data = trends %>% filter (Metric == "Mortality") %>% filter (Type == "Modeled"), color = "lightskyblue", size = 1) +
         geom_point (data = trends %>% filter (Metric == "Mortality") %>% filter (Type == "Observed"), color = "lightskyblue", size = 1.5, shape = 1) + 
         geom_line (data = trends %>% filter (Metric == "Incidence") %>% filter (Type == "Modeled"), color = "navy", size = 1) +
         geom_point (data = trends %>% filter (Metric == "Incidence") %>% filter (Type == "Observed"), color = "navy", size = 1.5, shape = 16) +  
         facet_wrap (~Site) +
         scale_x_continuous (breaks = c (1991,2004,2017)) +
         xlab ("Year") +
         ylab ("Rate per 100,000") +
         theme(legend.position = "none") +
         theme(panel.grid.major = element_blank(),panel.grid.minor = element_blank()) +
         scale_y_log10()

You can reorder the plots by reordering the factor that determines the faceting. Here is one way to do that.

library(ggplot2)
library(dplyr)
#> 
#> Attaching package: 'dplyr'
#> The following objects are masked from 'package:stats':
#> 
#>     filter, lag
#> The following objects are masked from 'package:base':
#> 
#>     intersect, setdiff, setequal, union
DF <- data.frame(Site = c("Breast", "Breast", "Breast", "Stomach", "Stomach", "Stomach"),
                 X = c(1,2,3,1,2,3),
                 Value = c(2,3,4, 5,6,7))
ggplot(DF, aes(X, Value)) + geom_line() +
  facet_wrap(~ Site)


DF <- mutate(DF, Site = factor(Site, levels = c("Stomach", "Breast")))

ggplot(DF, aes(X, Value)) + geom_line() +
  facet_wrap(~ Site)

Created on 2019-09-30 by the reprex package (v0.2.1)

2 Likes

This topic was automatically closed 7 days after the last reply. New replies are no longer allowed.