Geographical heat map in R

后端 未结 4 1141
孤独总比滥情好
孤独总比滥情好 2020-12-13 21:20

i want to create a map of the US in R with the states color coded in a heat map type of way based on a metric. I know how to do this using the googleVis api but i can\'t us

相关标签:
4条回答
  • 2020-12-13 21:27

    There is a complete example in the ggplot2 package, see ?map_data.

    library(ggplot2)
    example(map_data)
    
    0 讨论(0)
  • 2020-12-13 21:32

    Code

    # Transform dataset to correct format
    crimes <- data.frame(state = tolower(row.names(USArrests)), USArrests)
    crimes
    
    #  Map data   
    #  install.packages("maps") remember to install these two packages if you  
    #  install.packages("mapproj") do not have them yet
    
    library(mapproj)
    library(maps)
    
    states_map <- map_data("state")
    states_map
    
    # Merge datasets together 
    crime_map <- merge(states_map, crimes, by.x = "region", by.y = "state")
    
    # After merging, the order has changed, which leads to polygons drawn 
    # in the incorrect order. Let's sort it 
    crime_map
    
    library(dplyr) # for arrange() function 
    
    # Sort by group, then order 
    crime_map <- arrange(crime_map, group, order)
    crime_map
    
    # Now data can be plotted
    library(ggplot2)
    
    plot1 <- ggplot(crime_map, aes(x = long, y = lat, group = group, fill = Assault)) + 
                        geom_polygon(colour = "black") + 
                        coord_map("polyconic")
    
    plot1
    
    # Add title 
    plot1 <- plot1 + 
                    ggtitle("                       Proportion of crimes in the USA")
    
    plot1
    
    # Improve on colours 
    plot1 <- plot1 + 
        scale_fill_gradient2(low = "#559999", mid = "grey", high = "#BB650B",
                                                        midpoint = median(crimes$Assault))
    plot1
    
    # If you want white transparent backgroud only
    plot1 <- plot1 + 
             theme_void()
    
    plot1
    
    # Note: if RStudio gives you this error when ploducing plot, then use this and try 
    # again
    devAskNewPage(ask = FALSE)
    
    # Special thanks to Winston Chang and other ggplot developers at RStudio who made made 
    #  many of these codes 
    
    0 讨论(0)
  • 2020-12-13 21:36

    (hopefully answer may still be helpful for somebody)

    RevolutionAnalytics has excellent example of map visualization using spplot() function. Here's image from there:

    enter image description here

    0 讨论(0)
  • 2020-12-13 21:42

    There is a population-driven cloropleth example in the UScensus2000tract package.

    0 讨论(0)
提交回复
热议问题