How to create a hexbin chart in R
Visualizing high-density scatter plots can get tricky with overlapping data points. That’s where hexbin charts come in. In R, the hexbin
package offers a powerful and efficient way to plot hexagonal binning graphics, making it easier to reveal data concentration patterns.
This tutorial will walk you through how to create and customize hexbin charts in R, with hands-on examples.
📦 Step 1: Install and Load the hexbin
Package
Start by installing and loading the package:
r
install.packages("hexbin")
library(hexbin)

🎯 Step 2: Generate Sample Data
Use random normal data to simulate a high-volume scatter plot:
r
set.seed(123)
x <- rnorm(5000)
y <- rnorm(5000)
hex <- hexbin(x, y)
plot(hex)
This creates a basic hexbin chart with default settings.
🔧 Step 3: Customize the Number of Bins
You can change the resolution using the xbins
parameter. The default is 30:
r
hex <- hexbin(x, y, xbins = 20)
plot(hex)
Smaller values create larger bins; higher values create finer bins.

🎨 Step 4: Modify Border Color
Want to highlight the edges of each hexagon? Add a border using the border
argument:
r
hex <- hexbin(x, y)
plot(hex, border = 4) # 4 refers to blue in base R color codes

🌈 Step 5: Apply a Custom Color Palette
Enhance visual appeal with a custom color ramp:
r
Set legend = FALSE
to hide the color legend.
hex <- hexbin(x, y)
plot(hex, colramp = colorRampPalette(hcl.colors(12)))

You can choose different palettes like "GnBu"
for cooler gradients:
r
plot(hex, legend = FALSE,
colramp = colorRampPalette(hcl.colors(12, "GnBu")))

✅ Summary
With just a few lines of code, you can create attractive and informative hexbin charts in R. Key customization options include:
xbins
for resolution controlborder
for edge colorcolramp
for custom shadinglegend = FALSE
to declutter visuals