Pass in a data frame and get back a square choropleth.
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,
...
)
data frame of states and values to plot
column name in state_data
that has the states. no duplicates
and can be names (e.g. "Maine
") or abbreviatons (e.g. "ME
")
column name in state_data
that holds the values to be plotted
dark/light/NA label colors. The specified color will be used when the algorithm determines labels should be inverted.
font size (default = 3
)
default "white
" - this creates the "spaces" between boxes
border size
rounded corners (default: FALSE
)
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 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
ggplot2 object
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.
# 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