rm(list=ls())

library(zipcode)
library(tidyverse)
library(maps)
library(viridis)
library(ggthemes)
library(albersusa)#installed via github
library(ggplot2)
library(fiftystater)
library(usmap)
library(grid)
library(raster)
library(gridExtra)
library(readr)
state<-data("fifty_states")
state50<-us_map(regions = "states")

#file.choose()
library(foreign)
fm<-Export<-read.spss("C:/Users/Stephen Jones/Documents/OMS UNITE Recruitment.sav",to.data.frame=TRUE)

colnames(fm)[34]<-"zipcode"
colnames(Export)[34]<-"zipcode"

#data
data(zipcode)
fm$zipcode<- clean.zipcodes(fm$zipcode)
#size by zip
fm.zip<-aggregate(data.frame(count=fm$zipcode),list(zip=fm$zipcode),length)
total<- merge(fm.zip, zipcode, by='zip')
us<-map_data('state')
usa<-map_data("world","USA")
#alaska<-map_data("worldHires","USA:Alaska")
#hawaii<-map_data("worldHires","Hawaii")
#puertorico<-map_data("world","Puerto Rico")
stateFromLower <-function(x) {
#read 52 state codes into local variable [includes DC (Washington D.C. and PR (Puerto Rico)]
st.codes<-data.frame(
state=as.factor(c("AK", "AL", "AR", "AZ", "CA", "CO", "CT", "DC", "DE", "FL", "GA",
                  "HI", "IA", "ID", "IL", "IN", "KS", "KY", "LA", "MA", "MD", "ME",
                 "MI", "MN", "MO", "MS",  "MT", "NC", "ND", "NE", "NH", "NJ", "NM",
                 "NV", "NY", "OH", "OK", "OR", "PA", "PR", "RI", "SC", "SD", "TN",
                "TX", "UT", "VA", "VT", "WA", "WI", "WV", "WY")),
   full=as.factor(c("alaska","alabama","arkansas","arizona","california","colorado",
                   "connecticut","district of columbia","delaware","florida","georgia",
                    "hawaii","iowa","idaho","illinois","indiana","kansas","kentucky",
                    "louisiana","massachusetts","maryland","maine","michigan","minnesota",
                   "missouri","mississippi","montana","north carolina","north dakota",
                   "nebraska","new hampshire","new jersey","new mexico","nevada",
                  "new york","ohio","oklahoma","oregon","pennsylvania","puerto rico",
                  "rhode island","south carolina","south dakota","tennessee","texas",
                "utah","virginia","vermont","washington","wisconsin",
               "west virginia","wyoming"))
       )
      #create an nx1 data.frame of state codes from source column
      st.x<-data.frame(state=x)
       #match source codes with codes from 'st.codes' local variable and use to return the full state name
     refac.x<-st.codes$full[match(st.x$state,st.codes$state)]
#return the full state names in the same order in which they appeared in the original source
return(refac.x)
 
}
total$statefull<-stateFromLower(total$state)
total.statetotal<-aggregate(data.frame(statetotal=total$statefull),list(statefull=total$statefull),length)
total<- merge(total.statetotal, total,by='statefull')

library(mapdata)
library(mapproj)
ak<-map_data('worldHires','USA:Alaska')
ak<-subset(ak,long<0) #drop the end of the Aleutian Islands, or use world2Hires 
alaska<-ggplot(total)+geom_polygon(data=ak,aes(long,lat,group=group),fill="palegoldenrod")+coord_fixed(2.5)+
  geom_point(aes(x=longitude, y=latitude, color = count,size=count),shape=16,alpha=.50,show.legend=FALSE) +
  geom_point(aes(x=longitude, y=latitude, size=count),shape=1,color="steelblue3",alpha=.75,show.legend=FALSE) +
  scale_color_gradient(low="yellowgreen",high="yellow")+
  expand_limits(x = fifty_states$long, y = fifty_states$lat) +
  coord_map(projection = "mercator", xlim = c(-181, -128), ylim = c(73,51))+
  labs(x = "", y = "") +
  theme(panel.grid.major = element_blank(), 
        panel.grid.minor = element_blank(),
        panel.background = element_rect(fill = "transparent",colour = NA),
        plot.background = element_rect(fill = "transparent",colour = NA),
        axis.text.x = element_blank(),
        axis.text.y = element_blank(),
        axis.ticks = element_blank(),
        rect = element_blank())

hi<-map_data('worldHires','Hawaii')
hi<-subset(hi,long<0) #drop the end of the Aleutian Islands, or use world2Hires 
himap<-ggplot(total)+geom_polygon(data=hi,aes(long,lat,group=group),fill="palegoldenrod")+coord_fixed(1.0)+
  geom_point(aes(x=longitude, y=latitude, color = count,size=count),shape=16,alpha=.50,show.legend=FALSE) +
  geom_point(aes(x=longitude, y=latitude, size=count),shape=1,color="steelblue3",alpha=.75,show.legend=FALSE) +
  scale_color_gradient(low="yellowgreen",high="yellow")+
  expand_limits(x = fifty_states$long, y = fifty_states$lat) +
  coord_map(projection = "mercator", xlim = c(-167, -152), ylim = c(29,18))+
  labs(x = "", y = "") +
  theme(panel.grid.major = element_blank(), 
        panel.grid.minor = element_blank(),
        panel.background = element_rect(fill = "transparent",colour = NA),
        plot.background = element_rect(fill = "transparent",colour = NA),
        axis.text.x = element_blank(),
        axis.text.y = element_blank(),
        axis.ticks = element_blank(),
        rect = element_blank())

pr<-map_data('worldHires','Puerto Rico')
pr<-subset(pr,long<0) #drop the end of the Aleutian Islands, or use world2Hires 
prmap<-ggplot(total)+geom_polygon(data=pr,aes(long,lat,group=group),fill="palegoldenrod")+coord_fixed(1.0)+
  geom_point(aes(x=longitude, y=latitude, color = count,size=count),shape=16,alpha=.50,show.legend=FALSE) +
  geom_point(aes(x=longitude, y=latitude, size=count),shape=1,color="steelblue3",alpha=.75,show.legend=FALSE) +
  scale_color_gradient(low="yellowgreen",high="yellow")+
  expand_limits(x = fifty_states$long, y = fifty_states$lat) +
  coord_map(projection = "mercator", xlim = c(-68, -65), ylim = c(18.6,17.8))+
  labs(x = "", y = "") +
  theme(panel.grid.major = element_blank(), 
        panel.grid.minor = element_blank(),
        panel.background = element_rect(fill = "transparent",colour = NA),
        plot.background = element_rect(fill = "transparent",colour = NA),
        axis.text.x = element_blank(),
        axis.text.y = element_blank(),
        axis.ticks = element_blank(),
        rect = element_blank())

UNITE_map<-ggplot(total, aes(map_id=statefull)) + 
  # map points to the fifty_states shape data
  geom_map(aes(fill=statetotal), map=us) + 
  geom_point(aes(x=longitude, y=latitude, color = count,size=count),shape=16,alpha=.50,show.legend=FALSE) +
  geom_point(aes(x=longitude, y=latitude, size=count),shape=1,color="steelblue3",alpha=.75,show.legend=FALSE) +
  scale_color_gradient(low="yellowgreen",high="yellow")+
  expand_limits(x = fifty_states$long, y = fifty_states$lat) +
  coord_map(projection = "mercator", xlim = c(-125, -65), ylim = c(50,23)) +
  scale_x_continuous(breaks = NULL,na.value = 0) + 
  scale_y_continuous(breaks = NULL,na.value = 0) +
  labs(x = "", y = "") +
  theme(legend.position = c(.92,.2),
        legend.text=element_text(size=9),
        panel.grid.major = element_blank(), 
        panel.grid.minor = element_blank(),
        panel.background = element_rect(fill = "transparent",colour = NA),
        plot.background = element_rect(fill = "transparent",colour = NA)
  )+
  scale_fill_viridis(breaks=c(200,400,600,800,1000),labels=c('1-200','201-400','401-600','601-800','801+'),begin=1,end=.6,option="magma")+
  guides(fill=guide_legend(title="Responses by state/terr",size="legend",title.theme=element_text(size=9,angle=0)))

#ggsave("C:/Users/Stephen Jones/Desktop/Enrolled_Scruff_Transparent1.png",Scruff_map,bg="transparent")

png(file="C:/MSDS/OMS Responses_Map_Color26.png",w=4000,h=4000, res=225,bg="transparent")
grid.newpage()
v1<-viewport(width = 1, height = 1, x = 0.5, y = 0.5) #plot area for the main map
v2<-viewport(width = 0.3, height = 0.3, x = 0.1, y = 0.3) #plot area for the inset map
v3<-viewport(width = 0.5, height = 0.5, x = 0.25, y = 0.35) #plot area for the inset map
v4<-viewport(width = 0.15, height = 0.15, x = 0.58, y = 0.23) #plot area for the inset map)
print(UNITE_map,vp=v1) 
print(alaska,vp=v2)
print(himap,vp=v3)
print(prmap,vp=v4)
dev.off()
## png 
##   2
knitr::include_graphics("/MSDS/OMS Responses_Map_Color26.png")

rm(list=ls())

library(zipcode)
library(tidyverse)
library(maps)
library(viridis)
library(ggthemes)
library(albersusa)#installed via github
library(ggplot2)
library(fiftystater)
library(usmap)
library(grid)
library(raster)
library(gridExtra)
library(readr)
state<-data("fifty_states")
state50<-us_map(regions = "states")

#file.choose()
library(foreign)
fm<-Export<-read.spss("C:/Users/Stephen Jones/Documents/UNITE CASI BL with OMS.sav",to.data.frame=TRUE)

colnames(fm)[34]<-"zipcode"
colnames(Export)[34]<-"zipcode"

#data
data(zipcode)
fm$zipcode<- clean.zipcodes(fm$zipcode)
#size by zip
fm.zip<-aggregate(data.frame(count=fm$zipcode),list(zip=fm$zipcode),length)
total<- merge(fm.zip, zipcode, by='zip')
us<-map_data('state')
usa<-map_data("world","USA")
#alaska<-map_data("worldHires","USA:Alaska")
#hawaii<-map_data("worldHires","Hawaii")
#puertorico<-map_data("world","Puerto Rico")
stateFromLower <-function(x) {
#read 52 state codes into local variable [includes DC (Washington D.C. and PR (Puerto Rico)]
st.codes<-data.frame(
state=as.factor(c("AK", "AL", "AR", "AZ", "CA", "CO", "CT", "DC", "DE", "FL", "GA",
                  "HI", "IA", "ID", "IL", "IN", "KS", "KY", "LA", "MA", "MD", "ME",
                 "MI", "MN", "MO", "MS",  "MT", "NC", "ND", "NE", "NH", "NJ", "NM",
                 "NV", "NY", "OH", "OK", "OR", "PA", "PR", "RI", "SC", "SD", "TN",
                "TX", "UT", "VA", "VT", "WA", "WI", "WV", "WY")),
   full=as.factor(c("alaska","alabama","arkansas","arizona","california","colorado",
                   "connecticut","district of columbia","delaware","florida","georgia",
                    "hawaii","iowa","idaho","illinois","indiana","kansas","kentucky",
                    "louisiana","massachusetts","maryland","maine","michigan","minnesota",
                   "missouri","mississippi","montana","north carolina","north dakota",
                   "nebraska","new hampshire","new jersey","new mexico","nevada",
                  "new york","ohio","oklahoma","oregon","pennsylvania","puerto rico",
                  "rhode island","south carolina","south dakota","tennessee","texas",
                "utah","virginia","vermont","washington","wisconsin",
               "west virginia","wyoming"))
       )
      #create an nx1 data.frame of state codes from source column
      st.x<-data.frame(state=x)
       #match source codes with codes from 'st.codes' local variable and use to return the full state name
     refac.x<-st.codes$full[match(st.x$state,st.codes$state)]
#return the full state names in the same order in which they appeared in the original source
return(refac.x)
 
}
total$statefull<-stateFromLower(total$state)
total.statetotal<-aggregate(data.frame(statetotal=total$statefull),list(statefull=total$statefull),length)
total<- merge(total.statetotal, total,by='statefull')

library(mapdata)
library(mapproj)
ak<-map_data('worldHires','USA:Alaska')
ak<-subset(ak,long<0) #drop the end of the Aleutian Islands, or use world2Hires 
alaska<-ggplot(total)+geom_polygon(data=ak,aes(long,lat,group=group),fill="palegoldenrod")+coord_fixed(2.5)+
  geom_point(aes(x=longitude, y=latitude, color = count,size=count),shape=16,alpha=.50,show.legend=FALSE) +
  geom_point(aes(x=longitude, y=latitude, size=count),shape=1,color="steelblue3",alpha=.75,show.legend=FALSE) +
  scale_color_gradient(low="yellowgreen",high="yellow")+
  expand_limits(x = fifty_states$long, y = fifty_states$lat) +
  coord_map(projection = "mercator", xlim = c(-181, -128), ylim = c(73,51))+
  labs(x = "", y = "") +
  theme(panel.grid.major = element_blank(), 
        panel.grid.minor = element_blank(),
        panel.background = element_rect(fill = "transparent",colour = NA),
        plot.background = element_rect(fill = "transparent",colour = NA),
        axis.text.x = element_blank(),
        axis.text.y = element_blank(),
        axis.ticks = element_blank(),
        rect = element_blank())

hi<-map_data('worldHires','Hawaii')
hi<-subset(hi,long<0) #drop the end of the Aleutian Islands, or use world2Hires 
himap<-ggplot(total)+geom_polygon(data=hi,aes(long,lat,group=group),fill="palegoldenrod")+coord_fixed(1.0)+
  geom_point(aes(x=longitude, y=latitude, color = count,size=count),shape=16,alpha=.50,show.legend=FALSE) +
  geom_point(aes(x=longitude, y=latitude, size=count),shape=1,color="steelblue3",alpha=.75,show.legend=FALSE) +
  scale_color_gradient(low="yellowgreen",high="yellow")+
  expand_limits(x = fifty_states$long, y = fifty_states$lat) +
  coord_map(projection = "mercator", xlim = c(-167, -152), ylim = c(29,18))+
  labs(x = "", y = "") +
  theme(panel.grid.major = element_blank(), 
        panel.grid.minor = element_blank(),
        panel.background = element_rect(fill = "transparent",colour = NA),
        plot.background = element_rect(fill = "transparent",colour = NA),
        axis.text.x = element_blank(),
        axis.text.y = element_blank(),
        axis.ticks = element_blank(),
        rect = element_blank())

pr<-map_data('worldHires','Puerto Rico')
pr<-subset(pr,long<0) #drop the end of the Aleutian Islands, or use world2Hires 
prmap<-ggplot(total)+geom_polygon(data=pr,aes(long,lat,group=group),fill="palegoldenrod")+coord_fixed(1.0)+
  geom_point(aes(x=longitude, y=latitude, color = count,size=count),shape=16,alpha=.50,show.legend=FALSE) +
  geom_point(aes(x=longitude, y=latitude, size=count),shape=1,color="steelblue3",alpha=.75,show.legend=FALSE) +
  scale_color_gradient(low="yellowgreen",high="yellow")+
  expand_limits(x = fifty_states$long, y = fifty_states$lat) +
  coord_map(projection = "mercator", xlim = c(-68, -65), ylim = c(18.6,17.8))+
  labs(x = "", y = "") +
  theme(panel.grid.major = element_blank(), 
        panel.grid.minor = element_blank(),
        panel.background = element_rect(fill = "transparent",colour = NA),
        plot.background = element_rect(fill = "transparent",colour = NA),
        axis.text.x = element_blank(),
        axis.text.y = element_blank(),
        axis.ticks = element_blank(),
        rect = element_blank())

UNITE_map<-ggplot(total, aes(map_id=statefull)) + 
  # map points to the fifty_states shape data
  geom_map(aes(fill=statetotal), map=us) + 
  geom_point(aes(x=longitude, y=latitude, color = count,size=count),shape=16,alpha=.50,show.legend=FALSE) +
  geom_point(aes(x=longitude, y=latitude, size=count),shape=1,color="steelblue3",alpha=.75,show.legend=FALSE) +
  scale_color_gradient(low="yellowgreen",high="yellow")+
  expand_limits(x = fifty_states$long, y = fifty_states$lat) +
  coord_map(projection = "mercator", xlim = c(-125, -65), ylim = c(50,23)) +
  scale_x_continuous(breaks = NULL,na.value = 0) + 
  scale_y_continuous(breaks = NULL,na.value = 0) +
  labs(x = "", y = "") +
  theme(legend.position = c(.92,.2),
        legend.text=element_text(size=9),
        panel.grid.major = element_blank(), 
        panel.grid.minor = element_blank(),
        panel.background = element_rect(fill = "transparent",colour = NA),
        plot.background = element_rect(fill = "transparent",colour = NA)
  )+
  scale_fill_viridis(breaks=c(200,400,600,800,1000),labels=c('1-200','201-400','401-600','601-800','801+'),begin=1,end=.6,option="magma")+
  guides(fill=guide_legend(title="Responses by state/terr",size="legend",title.theme=element_text(size=9,angle=0)))

#ggsave("C:/Users/Stephen Jones/Desktop/Enrolled_Scruff_Transparent1.png",Scruff_map,bg="transparent")

png(file="C:/MSDS/CASI Responses_Map_Color_Update.png",w=4000,h=4000, res=225,bg="transparent")
grid.newpage()
v1<-viewport(width = 1, height = 1, x = 0.5, y = 0.5) #plot area for the main map
v2<-viewport(width = 0.3, height = 0.3, x = 0.1, y = 0.3) #plot area for the inset map
v3<-viewport(width = 0.5, height = 0.5, x = 0.25, y = 0.35) #plot area for the inset map
v4<-viewport(width = 0.15, height = 0.15, x = 0.58, y = 0.23) #plot area for the inset map)
print(UNITE_map,vp=v1) 
print(alaska,vp=v2)
print(himap,vp=v3)
print(prmap,vp=v4)
dev.off()
## png 
##   2
knitr::include_graphics("/MSDS/CASI Responses_Map_Color_Update.png")