Learn R Programming

statebins (version 1.4.0)

statebins: Create a new ggplot-based "statebin" chart for USA states/territories

Description

Pass in a data frame and get back a square choropleth.

Usage

statebins(
  state_data,
  state_col = "state",
  value_col = "value",
  dark_label = "black",
  light_label = "white",
  na_label = "white",
  font_size = 3,
  state_border_col = "white",
  state_border_size = 2,
  round = FALSE,
  radius = grid::unit(6, "pt"),
  ggplot2_scale_function = ggplot2::scale_fill_distiller,
  ...
)

Arguments

state_data

data frame of states and values to plot

state_col

column name in state_data that has the states. no duplicates and can be names (e.g. "Maine") or abbreviatons (e.g. "ME")

value_col

column name in state_data that holds the values to be plotted

dark_label, light_label, na_label

dark/light/NA label colors. The specified color will be used when the algorithm determines labels should be inverted.

font_size

font size (default = 3)

state_border_col

default "white" - this creates the "spaces" between boxes

state_border_size

border size

round

rounded corners (default: FALSE)

radius

if round is TRUE then use grid::unit to specify the corner radius. Default is grid::unit(6, "pt") if using rounded corners.

ggplot2_scale_function

ggplot2 scale function to use. Defaults to scale_fill_distiller since you're likely passing in continuous data when you shouldn't be :-)

...

additional parameters to the scale function

Value

ggplot2 object

Details

The state_col and value_col parameters default to state and value. That means if you name the columns you want to plot with those names, you can forego passing them in. Othersise, use "strings".

A handy feature of this function is that you can specify a dark_label color and a light_label color. What does that mean? Well, you also pass in the color scale function you're going to use and statebins will apply it and use that information to determine what the tile color is and --- if it's "dark" it will use the light_label and if it's "light" it will use the dark_label color. That means the labels will never blend in to the background (as long as you specify decent label colors).

You can customize the scale function you pass in by using name parameters. All named parameters not used by statebins() itself get passed to the scale function.

Examples

Run this code
# NOT RUN {
data(USArrests)

USArrests$state <- rownames(USArrests)
statebins(USArrests, value_col="Assault", name = "Assault") +
  theme_statebins(legend_position="right")
# }

Run the code above in your browser using DataLab