@@ -110,14 +110,16 @@ plot_choro = function(x, time_value = NULL, include = c(), range,
110110 # Make background layer for MSA and HRR maps which are incomplete
111111 if ((attributes(x )$ geo_type == " msa" ) |
112112 (attributes(x )$ geo_type == " hrr" )) {
113- map_df = st_read(' ../data/shapefiles/state/cb_2019_us_state_5m.shp' )
114- background_crs = st_crs(map_df )
113+ map_df = sf :: st_read(' ../data/shapefiles/state/cb_2019_us_state_5m.shp' )
114+ background_crs = sf :: st_crs(map_df )
115115 map_df $ STATEFP <- as.character(map_df $ STATEFP )
116116 map_df $ is_alaska = map_df $ STATEFP == ' 02'
117117 map_df $ is_hawaii = map_df $ STATEFP == ' 15'
118118 map_df $ is_pr = map_df $ STATEFP == ' 72'
119119 map_df $ STATEFP <- as.numeric(map_df $ STATEFP )
120120 map_df $ is_state = map_df $ STATEFP < 57
121+ map_df $ color = missing_col
122+
121123 pr_df = map_df %> % filter(. $ is_pr )
122124 hawaii_df = map_df %> % filter(. $ is_hawaii )
123125 alaska_df = map_df %> % filter(. $ is_alaska )
@@ -126,41 +128,38 @@ plot_choro = function(x, time_value = NULL, include = c(), range,
126128 main_df = main_df %> % filter(! main_df $ is_hawaii )
127129 main_df = main_df %> % filter(main_df $ is_state )
128130
129- main_df = st_transform(main_df , 102003 )
130- hawaii_df = st_transform(hawaii_df , 102007 )
131- alaska_df = st_transform(alaska_df , 102006 )
132- pr_df = st_transform(pr_df , 102003 )
133-
134- hawaii_shift = st_geometry(hawaii_df ) + c(- 1e+6 , - 2e+6 )
135- hawaii_df = st_set_geometry(hawaii_df , hawaii_shift )
136- hawaii_df = st_set_crs(hawaii_df , 102003 )
137-
138- alaska_centroid = st_centroid(st_geometry(alaska_df ))
139- alaska_scale = (st_geometry(alaska_df ) - alaska_centroid ) * 0.35 + alaska_centroid
140- alaska_df = st_set_geometry(alaska_df , alaska_scale )
141- alaska_shift = st_geometry(alaska_df ) + c(- 2e+6 , - 2.6e+6 )
142- alaska_df = st_set_geometry(alaska_df , alaska_shift )
143- alaska_df = st_set_crs(alaska_df , 102003 )
144-
145- pr_shift = st_geometry(pr_df ) + c(- 0.9e+6 , 1e+6 )
146- pr_df = st_set_geometry(pr_df , pr_shift )
147- r = - 16 * pi / 180
148- rotation = matrix (c(cos(r ), sin(r ), - sin(r ), cos(r )), nrow = 2 , ncol = 2 )
149- pr_centroid = pr_df %> % st_geometry %> % st_centroid
150- pr_rotate = (st_geometry(pr_df ) - pr_centroid ) * rotation + pr_centroid
151- pr_df = st_set_crs(pr_df , 102003 )
131+ main_df = sf :: st_transform(main_df , 102003 )
132+ hawaii_df = sf :: st_transform(hawaii_df , 102007 )
133+ alaska_df = sf :: st_transform(alaska_df , 102006 )
134+ pr_df = sf :: st_transform(pr_df , 102003 )
152135
153- main_geo = main_df $ STATEFP
154- main_col = rep(missing_col , length(main_geo ))
136+ hawaii_shift = sf :: st_geometry(hawaii_df ) + c(- 1e+6 , - 2e+6 )
137+ hawaii_df = sf :: st_set_geometry(hawaii_df , hawaii_shift )
138+ hawaii_df = sf :: st_set_crs(hawaii_df , 102003 )
155139
156- hawaii_geo = hawaii_df $ STATEFP
157- hawaii_col = rep(missing_col , length(hawaii_geo ))
140+ alaska_centroid = sf :: st_centroid(sf :: st_geometry(alaska_df ))
141+ print(' hi' )
142+ alaska_scale = (sf :: st_geometry(alaska_df ) - alaska_centroid ) * 0.35 + alaska_centroid
143+ alaska_df = sf :: st_set_geometry(alaska_df , alaska_scale )
144+ alaska_shift = sf :: st_geometry(alaska_df ) + c(- 2e+6 , - 2.6e+6 )
145+ alaska_df = sf :: st_set_geometry(alaska_df , alaska_shift )
146+ alaska_df = sf :: st_set_crs(alaska_df , 102003 )
158147
159- alaska_geo = alaska_df $ STATEFP
160- alaska_col = rep(missing_col , length(alaska_geo ))
148+ print(' hi' )
161149
162- pr_geo = pr_df $ STATEFP
163- pr_col = rep(missing_col , length(pr_geo ))
150+ pr_shift = sf :: st_geometry(pr_df ) + c(- 0.9e+6 , 1e+6 )
151+ pr_df = sf :: st_set_geometry(pr_df , pr_shift )
152+ r = - 16 * pi / 180
153+ rotation = matrix (c(cos(r ), sin(r ), - sin(r ), cos(r )), nrow = 2 , ncol = 2 )
154+ pr_centroid = sf :: st_centroid(sf :: st_geometry(pr_df ))
155+ pr_rotate = (sf :: st_geometry(pr_df ) - pr_centroid ) * rotation + pr_centroid
156+ pr_df = sf :: st_set_geometry(pr_df , pr_rotate )
157+ pr_df = sf :: st_set_crs(pr_df , 102003 )
158+
159+ main_col = main_df $ color
160+ hawaii_col = hawaii_df $ color
161+ alaska_col = alaska_df $ color
162+ pr_col = pr_df $ color
164163
165164 aes = ggplot2 :: aes
166165 geom_args = list ()
@@ -217,7 +216,7 @@ plot_choro = function(x, time_value = NULL, include = c(), range,
217216 }
218217
219218 else if (attributes(x )$ geo_type == " msa" ) {
220- map_df = st_read(' ../data/shapefiles/msa/cb_2019_us_cbsa_5m.shp' )
219+ map_df = sf :: st_read(' ../data/shapefiles/msa/cb_2019_us_cbsa_5m.shp' )
221220 map_df = map_df %> % filter(map_df $ LSAD == ' M1' ) # only get metro and not micropolitan areas
222221 if (length(include ) > 0 ) {
223222 map_df = map_df %> % filter(map_df $ GEOID %in% include )
@@ -226,71 +225,64 @@ plot_choro = function(x, time_value = NULL, include = c(), range,
226225 map_df $ is_alaska = substr(map_df $ NAME , nchar(map_df $ NAME ) - 1 , nchar(map_df $ NAME )) == ' AK'
227226 map_df $ is_hawaii = substr(map_df $ NAME , nchar(map_df $ NAME ) - 1 , nchar(map_df $ NAME )) == ' HI'
228227 map_df $ is_pr = substr(map_df $ NAME , nchar(map_df $ NAME ) - 1 , nchar(map_df $ NAME )) == ' PR'
228+ map_df $ color = ifelse(map_df $ GEOID %in% geo ,
229+ col_fun(val [map_df $ GEOID ]),
230+ missing_col )
231+
229232 pr_df = map_df %> % filter(map_df $ is_pr )
230233 hawaii_df = map_df %> % filter(map_df $ is_hawaii )
231234 alaska_df = map_df %> % filter(map_df $ is_alaska )
232235 main_df = map_df %> % filter(! map_df $ is_alaska )
233236 main_df = main_df %> % filter(! main_df $ is_hawaii )
234237 main_df = main_df %> % filter(! main_df $ is_pr )
235238
236- main_df = st_transform(main_df , 102003 )
237- hawaii_df = st_transform(hawaii_df , 102007 )
238- alaska_df = st_transform(alaska_df , 102006 )
239- pr_df = st_transform(pr_df , 102003 )
239+ main_df = sf :: st_transform(main_df , 102003 )
240+ hawaii_df = sf :: st_transform(hawaii_df , 102007 )
241+ alaska_df = sf :: st_transform(alaska_df , 102006 )
242+ pr_df = sf :: st_transform(pr_df , 102003 )
240243
241- hawaii_shift = st_geometry(hawaii_df ) + c(- 1e+6 , - 2e+6 )
242- hawaii_df = st_set_geometry(hawaii_df , hawaii_shift )
243- hawaii_df = st_set_crs(hawaii_df , 102003 )
244+ hawaii_shift = sf :: st_geometry(hawaii_df ) + c(- 1e+6 , - 2e+6 )
245+ hawaii_df = sf :: st_set_geometry(hawaii_df , hawaii_shift )
246+ hawaii_df = sf :: st_set_crs(hawaii_df , 102003 )
244247
245248 # Note centroid is centroid for entire state (defined for background)
246- alaska_scale = (st_geometry(alaska_df ) - alaska_centroid ) * 0.35 + alaska_centroid
247- alaska_df = st_set_geometry(alaska_df , alaska_scale )
248- alaska_shift = st_geometry(alaska_df ) + c(- 2e+6 , - 2.6e+6 )
249- alaska_df = st_set_geometry(alaska_df , alaska_shift )
250- alaska_df = st_set_crs(alaska_df , 102003 )
251-
252- pr_shift = st_geometry(pr_df ) + c(- 0.9e+6 , 1e+6 )
253- pr_df = st_set_geometry(pr_df , pr_shift )
249+ alaska_scale = (sf :: st_geometry(alaska_df ) - alaska_centroid ) * 0.35 + alaska_centroid
250+ alaska_df = sf :: st_set_geometry(alaska_df , alaska_scale )
251+ alaska_shift = sf :: st_geometry(alaska_df ) + c(- 2e+6 , - 2.6e+6 )
252+ alaska_df = sf :: st_set_geometry(alaska_df , alaska_shift )
253+ alaska_df = sf :: st_set_crs(alaska_df , 102003 )
254+
255+ pr_shift = sf :: st_geometry(pr_df ) + c(- 0.9e+6 , 1e+6 )
256+ pr_df = sf :: st_set_geometry(pr_df , pr_shift )
254257 r = - 16 * pi / 180
255258 rotation = matrix (c(cos(r ), sin(r ), - sin(r ), cos(r )), nrow = 2 , ncol = 2 )
256259 # Note centroid is same as for entire territory (defined for background)
257- pr_rotate = (st_geometry(pr_df ) - pr_centroid ) * rotation + pr_centroid
258- pr_df = st_set_crs(pr_df , 102003 )
259-
260- main_geo = main_df $ GEOID
261- main_col = rep(missing_col , length(main_geo ))
262- main_obs = main_geo [main_geo %in% geo ]
263- main_col [main_geo %in% geo ] = col_fun(val [main_obs ])
264-
265- hawaii_geo = hawaii_df $ GEOID
266- hawaii_col = rep(missing_col , length(hawaii_geo ))
267- hawaii_obs = hawaii_geo [hawaii_geo %in% geo ]
268- hawaii_col [hawaii_geo %in% geo ] = col_fun(val [hawaii_obs ])
269-
270- alaska_geo = alaska_df $ GEOID
271- alaska_col = rep(missing_col , length(alaska_geo ))
272- alaska_obs = alaska_geo [alaska_geo %in% geo ]
273- alaska_col [alaska_geo %in% geo ] = col_fun(val [alaska_obs ])
274-
275- pr_geo = pr_df $ GEOID
276- pr_col = rep(missing_col , length(pr_geo ))
277- pr_obs = pr_geo [pr_geo %in% geo ]
278- pr_col [pr_geo %in% geo ] = col_fun(val [pr_obs ])
260+ pr_rotate = (sf :: st_geometry(pr_df ) - pr_centroid ) * rotation + pr_centroid
261+ pr_df = sf :: st_set_geometry(pr_df , pr_rotate )
262+ pr_df = sf :: st_set_crs(pr_df , 102003 )
263+
264+ main_col = main_df $ color
265+ hawaii_col = hawaii_df $ color
266+ alaska_col = alaska_df $ color
267+ pr_geo = pr_df $ color
279268 }
280269
281270 else if (attributes(x )$ geo_type == " hrr" ) {
282- map_df = st_read(' ../data/shapefiles/hrr/geo_export_ad86cff5-e5ed-432e-9ec2-2ce8732099ee.shp' )
271+ map_df = sf :: st_read(' ../data/shapefiles/hrr/geo_export_ad86cff5-e5ed-432e-9ec2-2ce8732099ee.shp' )
283272 if (length(include ) > 0 ) {
284273 map_df = map_df %> % filter(map_df $ hrr_num %in% include )
285274 }
286- map_df = st_transform(map_df , background_crs )
287- hrr_shift = st_geometry(map_df ) + c(0 , - 0.185 )
288- map_df = st_set_geometry(map_df , hrr_shift )
289- map_df = st_set_crs(map_df , background_crs )
275+ map_df = sf :: st_transform(map_df , background_crs )
276+ hrr_shift = sf :: st_geometry(map_df ) + c(0 , - 0.185 )
277+ map_df = sf :: st_set_geometry(map_df , hrr_shift )
278+ map_df = sf :: st_set_crs(map_df , background_crs )
290279 map_df $ hrr_name <- as.character(map_df $ hrr_name )
291280 map_df $ is_alaska = substr(map_df $ hrr_name , 1 , 2 ) == ' AK'
292- map_df $ is_hawaii = substr(map_df $ hrr_name , 1 , 1 ) == ' HI'
281+ map_df $ is_hawaii = substr(map_df $ hrr_name , 1 , 2 ) == ' HI'
293282 map_df $ is_pr = substr(map_df $ hrr_name , 1 , 2 ) == ' PR'
283+ map_df $ color = ifelse(map_df $ hrr_num %in% geo ,
284+ col_fun(val [map_df $ hrr_num ]),
285+ missing_col )
294286
295287 pr_df = map_df %> % filter(map_df $ is_pr )
296288 hawaii_df = map_df %> % filter(map_df $ is_hawaii )
@@ -300,52 +292,35 @@ plot_choro = function(x, time_value = NULL, include = c(), range,
300292 main_df = main_df %> % filter(! main_df $ is_hawaii )
301293 main_df = main_df %> % filter(! main_df $ is_pr )
302294
303- main_df = st_transform(main_df , 102003 )
304- hawaii_df = st_transform(hawaii_df , 102007 )
305- alaska_df = st_transform(alaska_df , 102006 )
306- pr_df = st_transform(pr_df , 102003 )
295+ main_df = sf :: st_transform(main_df , 102003 )
296+ hawaii_df = sf :: st_transform(hawaii_df , 102007 )
297+ alaska_df = sf :: st_transform(alaska_df , 102006 )
298+ pr_df = sf :: st_transform(pr_df , 102003 )
307299
308- hawaii_shift = st_geometry(hawaii_df ) + c(- 1e+6 , - 2e+6 )
309- hawaii_df = st_set_geometry(hawaii_df , hawaii_shift )
310- hawaii_df = st_set_crs(hawaii_df , 102003 )
300+ hawaii_shift = sf :: st_geometry(hawaii_df ) + c(- 1e+6 , - 2e+6 )
301+ hawaii_df = sf :: st_set_geometry(hawaii_df , hawaii_shift )
302+ hawaii_df = sf :: st_set_crs(hawaii_df , 102003 )
311303
312304 # Note centroid is centroid for entire state (defined for background)
313- # alaska_scale = (st_geometry(alaska_df) - alaska_centroid) * 0.35 + alaska_centroid
314- # alaska_df = st_set_geometry(alaska_df, alaska_scale)
315- # alaska_shift = st_geometry(alaska_df) + c(-2e+6, -2.6e+6)
316- # alaska_df = st_set_geometry(alaska_df, alaska_shift)
317- alaska_df = st_set_crs(alaska_df , 102003 )
318-
319- pr_shift = st_geometry(pr_df ) + c(- 0.9e+6 , 1e+6 )
320- pr_df = st_set_geometry(pr_df , pr_shift )
305+ alaska_scale = (sf :: st_geometry(alaska_df ) - alaska_centroid ) * 0.35 + alaska_centroid
306+ alaska_df = sf :: st_set_geometry(alaska_df , alaska_scale )
307+ alaska_shift = sf :: st_geometry(alaska_df ) + c(- 2e+6 , - 2.6e+6 )
308+ alaska_df = sf :: st_set_geometry(alaska_df , alaska_shift )
309+ alaska_df = sf :: st_set_crs(alaska_df , 102003 )
310+
311+ pr_shift = sf :: st_geometry(pr_df ) + c(- 0.9e+6 , 1e+6 )
312+ pr_df = sf :: st_set_geometry(pr_df , pr_shift )
321313 r = - 16 * pi / 180
322314 rotation = matrix (c(cos(r ), sin(r ), - sin(r ), cos(r )), nrow = 2 , ncol = 2 )
323315 # Note centroid is same as for entire territory (defined for background)
324- pr_rotate = (st_geometry(pr_df ) - pr_centroid ) * rotation + pr_centroid
325- pr_df = st_set_crs(pr_df , 102003 )
326-
327- main_geo = main_df $ hrr_num
328- main_col = rep(missing_col , length(main_geo ))
329- main_obs = main_geo [main_geo %in% geo ]
330- main_col [main_geo %in% geo ] = col_fun(val [main_obs ])
331-
332- hawaii_geo = hawaii_df $ hrr_num
333- hawaii_col = rep(missing_col , length(hawaii_geo ))
334- hawaii_obs = hawaii_geo [hawaii_geo %in% geo ]
335- hawaii_col [hawaii_geo %in% geo ] = col_fun(val [hawaii_obs ])
336-
337- print(' yo' )
338- alaska_geo = alaska_df $ hrr_num
339- alaska_col = rep(missing_col , length(alaska_geo ))
340- alaska_obs = alaska_geo [alaska_geo %in% geo ]
341- print(alaska_obs )
342- alaska_col [alaska_geo %in% geo ] = col_fun(val [alaska_obs ])
343-
344- pr_geo = pr_df $ hrr_num
345- pr_col = rep(missing_col , length(pr_geo ))
346- pr_obs = pr_geo [pr_geo %in% geo ]
347- pr_col [pr_geo %in% geo ] = col_fun(val [pr_obs ])
348-
316+ pr_rotate = (sf :: st_geometry(pr_df ) - pr_centroid ) * rotation + pr_centroid
317+ pr_df = sf :: st_set_geometry(pr_df , pr_rotate )
318+ pr_df = sf :: st_set_crs(pr_df , 102003 )
319+
320+ main_col = main_df $ color
321+ hawaii_col = hawaii_df $ color
322+ alaska_col = alaska_df $ color
323+ pr_col = pr_df $ color
349324 }
350325
351326 # Create the polygon layer
@@ -372,19 +347,18 @@ plot_choro = function(x, time_value = NULL, include = c(), range,
372347
373348 geom_args $ fill = main_col
374349 geom_args $ data = main_df
375- polygon_layer = do.call(ggplot2 :: geom_sf , geom_args )
350+ main_layer = do.call(ggplot2 :: geom_sf , geom_args )
376351 geom_args $ fill = pr_col
377352 geom_args $ data = pr_df
378353 pr_layer = do.call(ggplot2 :: geom_sf , geom_args )
379354 geom_args $ fill = hawaii_col
380355 geom_args $ data = hawaii_df
381356 hawaii_layer = do.call(ggplot2 :: geom_sf , geom_args )
382- # geom_args$fill = alaska_col
383- # geom_args$data = alaska_df
384- # alaska_layer = do.call(ggplot2::geom_sf, geom_args)
357+ geom_args $ fill = alaska_col
358+ geom_args $ data = alaska_df
359+ alaska_layer = do.call(ggplot2 :: geom_sf , geom_args )
385360 coord_layer = do.call(ggplot2 :: coord_sf , coord_args )
386361 }
387-
388362
389363 # For intensity and continuous color scale, create a legend layer
390364 if (! direction && is.null(breaks )) {
@@ -456,12 +430,17 @@ plot_choro = function(x, time_value = NULL, include = c(), range,
456430 guide = guide )
457431 }
458432 # Put it all together and return
459- return (ggplot2 :: ggplot() + back_main_layer + back_pr_layer + back_hawaii_layer + back_alaska_layer +
460- polygon_layer +
461- pr_layer +
462- # hawaii_layer + alaska_layer +
463- coord_layer +
464- title_layer + hidden_layer + scale_layer + theme_layer )
433+ if ((attributes(x )$ geo_type == " msa" ) |
434+ (attributes(x )$ geo_type == " hrr" )) {
435+ return (ggplot2 :: ggplot() +
436+ back_main_layer + back_pr_layer + back_hawaii_layer + back_alaska_layer +
437+ main_layer + pr_layer + alaska_layer + hawaii_layer + coord_layer +
438+ title_layer + hidden_layer + scale_layer + theme_layer )
439+ }
440+ else {
441+ return (ggplot2 :: ggplot() + polygon_layer + coord_layer +
442+ title_layer + hidden_layer + scale_layer + theme_layer )
443+ }
465444}
466445
467446# Plot a bubble map of a covidcast_signal object.
0 commit comments