-
Notifications
You must be signed in to change notification settings - Fork 636
Closed
Description
I am trying to execute this code to overlay a state shapefile over lat-lon coordinates. I am also trying to animate this function with plotly to show change over SznYr (Season-Year combinations). Points will be outside shapefile but it'll be good as a reference.
data structure
df <- structure(list(STATION = c("ER 09", "ER 09", "ER 09", "ER 09",
"ER 09", "ER 09", "ER 09", "ER 09", "ER 09", "ER 09", "ER 09",
"ER 09", "ER 09", "ER 09", "ER 09", "ER 09", "ER 09", "ER 09",
"ER 09", "ER 09", "ER 09", "ER 09", "ER 09", "ER 09", "ER 09",
"ER 09", "ER 09", "ER 09", "ER 09", "ER 09"), YEAR = c(2004,
2014, 2009, 2010, 2006, 2010, 2005, 2013, 2012, 2003, 2011, 1999,
2008, 2002, 2001, 2015, 1999, 2008, 2007, 1998, 2009, 2003, 2002,
2006, 2014, 2011, 2013, 2000, 2001, 2016), CRUISE = c("Spring",
"Spring", "Spring", "Summer", "Spring", "Spring", "Summer", "Summer",
"Summer", "Spring", "Summer", "Summer", "Summer", "Summer", "Spring",
"Summer", "Spring", "Spring", "Spring", "Spring", "Summer", "Summer",
"Spring", "Summer", "Summer", "Spring", "Spring", "Summer", "Summer",
"Summer"), LAKE = c("ER", "ER", "ER", "ER", "ER", "ER", "ER",
"ER", "ER", "ER", "ER", "ER", "ER", "ER", "ER", "ER", "ER", "ER",
"ER", "ER", "ER", "ER", "ER", "ER", "ER", "ER", "ER", "ER", "ER",
"ER"), `SAMPLE DATE` = structure(c(1081555200, 1398384000, 1239840000,
1281484800, 1144540800, 1270857600, 1123718400, 1376179200, 1344643200,
1050364800, 1313020800, 933897600, 1218412800, 1028764800, 987292800,
1439424000, 921110400, 1208908800, 1176076800, 892080000, 1250726400,
1060387200, 1018224000, 1155340800, 1408060800, 1302652800, 1364947200,
965347200, 996969600, 1470960000), class = c("POSIXct", "POSIXt"
), tzone = "UTC"), `DAP_ugDW/m3` = c(4.43908045032482, 35.0766788176979,
14.7357403542112, 3441.21354986824, 11.0250577225057, 3.19190519969587,
3596.35705179986, 7566.22661157094, 3686.50071576236, 0, 10384.9731071551,
12838.4952301655, 3384.48839989391, 20751.6373928567, 0, 2793.05327182591,
1.14104325770947, 0, 0, 0, 111.410355473174, 22083.7651593859,
0, 21866.7827450416, 8864.58197143975, 0.848223804712927, 19.4903180274715,
2891.02077157959, 523.660621808397, 9199.92316528261), `Latitude (DD)` = c(42.5383333333333,
42.5383333333333, 42.5383333333333, 42.5383333333333, 42.5383333333333,
42.5383333333333, 42.5383333333333, 42.5383333333333, 42.5383333333333,
42.5383333333333, 42.5383333333333, 42.5383333333333, 42.5383333333333,
42.5383333333333, 42.5383333333333, 42.5383333333333, 42.5383333333333,
42.5383333333333, 42.5383333333333, 42.5383333333333, 42.5383333333333,
42.5383333333333, 42.5383333333333, 42.5383333333333, 42.5383333333333,
42.5383333333333, 42.5383333333333, 42.5383333333333, 42.5383333333333,
42.5383333333333), `Longitude (DD)` = c(-79.6166666666667, -79.6166666666667,
-79.6166666666667, -79.6166666666667, -79.6166666666667, -79.6166666666667,
-79.6166666666667, -79.6166666666667, -79.6166666666667, -79.6166666666667,
-79.6166666666667, -79.6166666666667, -79.6166666666667, -79.6166666666667,
-79.6166666666667, -79.6166666666667, -79.6166666666667, -79.6166666666667,
-79.6166666666667, -79.6166666666667, -79.6166666666667, -79.6166666666667,
-79.6166666666667, -79.6166666666667, -79.6166666666667, -79.6166666666667,
-79.6166666666667, -79.6166666666667, -79.6166666666667, -79.6166666666667
), SznYr = c("2004-Spring", "2014-Spring", "2009-Spring", "2010-Summer",
"2006-Spring", "2010-Spring", "2005-Summer", "2013-Summer", "2012-Summer",
"2003-Spring", "2011-Summer", "1999-Summer", "2008-Summer", "2002-Summer",
"2001-Spring", "2015-Summer", "1999-Spring", "2008-Spring", "2007-Spring",
"1998-Spring", "2009-Summer", "2003-Summer", "2002-Spring", "2006-Summer",
"2014-Summer", "2011-Spring", "2013-Spring", "2000-Summer", "2001-Summer",
"2016-Summer")), .Names = c("STATION", "YEAR", "CRUISE", "LAKE",
"SAMPLE DATE", "DAP_ugDW/m3", "Latitude (DD)", "Longitude (DD)",
"SznYr"), row.names = c(NA, 30L), class = "data.frame")
# get state shapefile
library(raster)
library(sf)
us <- getData("GADM", country="USA", level=1)
mich <- c("Michigan")
#convert it to sf object
mich.sf <- st_as_sf(mich)
# plotting code 1 . this works but doesn't include shapefile in code
gg <- ggplot(df, aes(x=`Longitude (DD)`, y=`Latitude (DD)`, color=`DAP_ugDW/m3`)) +
geom_point(aes(frame = SznYr, ids = STATION)) + scale_color_gradient(low="blue", high="red")
gg2 <- ggplotly(gg, height = 900, width = 700) %>%
animation_opts(frame = 200,
easing = "linear",
redraw = FALSE)
# plotting code 2 . does not work or show shapefile that is included in code
gg <- ggplot(df, aes(x=`Longitude (DD)`, y=`Latitude (DD)`, color=`DAP_ugDW/m3`)) +
geom_point(aes(frame = SznYr, ids = STATION)) + scale_color_gradient(low="blue", high="red") + geom_sf(data=lakes.sf)
gg2 <- ggplotly(gg, height = 900, width = 700) %>%
animation_opts(frame = 200,
easing = "linear",
redraw = FALSE)