GIS Tools

Language

Made withfor the GIS community

Graduated Styling

Apply quantiles, Jenks, or equal interval classification

Map Viewing

Drop GeoJSON file here

Style by numeric value ranges

Classification Methods

  • Equal Interval: Same range width for each class
  • Quantile: Same number of features per class
  • Natural Breaks: Minimizes within-class variance

What Is Graduated Styling?

Graduated styling (also called graduated colors, proportional symbols, or choropleth mapping) is the cartographic technique of visualizing a numeric attribute by dividing its values into classes and assigning a color or size to each class. Instead of every feature getting the same color, features are colored according to where they fall in a ramp β€” from light to dark, from small to large. It is the workhorse of quantitative cartography and the foundation of nearly every choropleth map you have ever seen.

The core question graduated styling answers is: where are the high values and where are the low values? A choropleth of median household income by census tract uses a light-to-dark green ramp; a map of temperature anomalies uses a diverging blue-to-red ramp with white in the middle; an earthquake intensity map scales circle size by magnitude. All of these are graduated styling applied to different geometry types.

The gis.tools graduated styling tool supports the industry-standard classification methods β€” Jenks natural breaks, quantiles (equal count), equal interval, standard deviation, and manual breaks β€” and pairs them with ColorBrewer sequential and diverging palettes.

How Graduated Styling Works

Classification methods

The hardest decision in graduated styling is how to divide continuous numeric values into discrete classes. Different methods produce dramatically different maps of the same data.

Equal interval divides the range into classes of equal width. Simple to explain but sensitive to outliers β€” a single high value can push all other features into a low class.

Quantiles (equal count) puts an equal number of features into each class. Good for highlighting rank order but can group very different values together if the distribution is uneven.

Natural breaks (Jenks) finds breakpoints that minimize within-class variance and maximize between-class variance. This is the default recommendation for unknown distributions. The algorithm has complexity proportional to the number of classes times the number of features squared, so it can be slow on very large datasets β€” QGIS and most implementations sample down to 1,000 features for Jenks when the layer is bigger.

Standard deviation creates classes at one, two, three standard deviations from the mean. Best for normally distributed data like temperatures or heights.

Manual breaks let the cartographer define breakpoints by hand, essential when matching regulatory thresholds or prior publications.

Color ramp application

Once breaks are defined, each class gets a color from a sequential (light-to-dark) or diverging (two-tone) palette. ColorBrewer 2.0 is the de facto standard for palette choice. Sequential palettes suit data with a natural zero (income, population); diverging palettes suit data with a meaningful midpoint (temperature anomaly, rate of change).

Proportional symbols alternative

For point data, graduated styling can scale symbol size instead of (or in addition to) color. Psychophysics research from Jacques Bertin and James Flannery shows that humans underestimate area, so proportional circles should scale by the square root of the value, not the raw value.

Key Parameters and Options

Field

The numeric attribute to classify. Must be integer or float. Check via Column Statistics for null counts, min/max, and distribution.

Number of classes

Typically 3 to 9. Four to six is the sweet spot β€” too few loses detail, too many overwhelms.

Classification method

Jenks, quantiles, equal interval, standard deviation, or manual.

Color ramp

Sequential (Blues, Greens, Reds, Purples, YlOrRd, viridis), diverging (RdYlGn, BrBG, RdBu, PiYG), or a custom gradient.

Mode

Color only, size only, or both. Color works for all geometry types; size works best for points.

Null handling

Decide whether nulls get their own color (usually gray) or are hidden.

Practical Applications

Census choropleths

Population density, median income, educational attainment, commute time β€” all classic choropleth subjects. Use Jenks or quantiles with a sequential palette to reveal regional patterns.

Epidemiology and public health

Disease rates per 100,000 population across administrative units. Age-adjusted mortality. Vaccination coverage. These maps drive public policy and need to be both accurate and visually honest.

Climate and environmental monitoring

Temperature anomaly maps, precipitation variability, air quality index, land surface temperature from MODIS. Diverging ramps work beautifully for anomaly data centered on zero.

Real estate pricing

Median home price by ZIP code or neighborhood. Rent burden. New construction density. Graduated styling reveals which neighborhoods are affordable and which are heating up.

Election analysis

Beyond the binary red/blue of categorical styling, graduated mapping shows margin of victory or turnout percentage, both of which are continuous quantities.

Crime analytics

Incident rates normalized by population. Graduated choropleths give police departments and communities a spatial view of problem areas.

Step-by-Step Workflow

  1. Load your data in the Online Map Viewer (Multi-Layer).
  2. Use Column Statistics to inspect the numeric field's distribution.
  3. Open the graduated styling panel.
  4. Select the field, number of classes, and classification method (Jenks is a safe default).
  5. Pick a sequential or diverging palette. Test a few to see what reads best.
  6. Adjust breaks manually if needed. Round numbers in breakpoints help legend readability.
  7. Configure null handling.
  8. Apply and compare with the Basemap Switcher alternatives.
  9. Export a legend with the Print Composer.

Worked Example: Mapping Commute Times

You have census tracts for a metropolitan area with a mean_commute_minutes field. Loading the layer shows a gray blob. Opening graduated styling, you select the commute field, ask for 5 classes, and try equal interval first β€” the result is dominated by one or two outlying tracts with multi-hour commutes (which turn out to be data errors). Switching to Jenks gives a much better map with meaningful breaks around 15, 25, 35, and 50 minutes. You pick the YlOrRd sequential palette. The resulting map shows short commutes downtown, moderate commutes in the inner ring, and long commutes in the distant exurbs β€” the pattern is immediately legible.

Common Pitfalls and Gotchas

  • Classification method shopping. Trying Jenks, quantiles, and equal interval and picking the one that tells your preferred story is a form of statistical bias. Commit to a method based on the data's distribution.
  • Too few classes. Three classes often hide real variation.
  • Too many classes. Beyond 7–8, readers cannot distinguish shades.
  • Unnormalized counts. Mapping raw counts (population per tract) instead of rates (population density) just maps the size of the polygons, not anything meaningful.
  • MAUP (Modifiable Areal Unit Problem). Different aggregation units produce different patterns. ZIP-code maps and census-tract maps of the same data can look wildly different.
  • Misleading zero baseline. Sequential palettes imply a meaningful zero; if your data is ratios around 1.0, a diverging palette is more honest.
  • Outliers dominating equal interval. A single extreme value can compress all other features into one class.

Tips for Best Results

  • Normalize raw counts to rates before mapping.
  • Default to Jenks for unknown distributions and quantiles for uniform distributions.
  • Use ColorBrewer palettes β€” they are tested for colorblind safety and print reproduction.
  • Round break values to human-readable numbers (10, 25, 50 instead of 9.47, 24.83, 49.91).
  • Include a legend with explicit class boundaries.
  • For diverging palettes, center on a meaningful value (zero, baseline, mean).
  • Preview with the Basemap Switcher on a muted basemap.

Comparison with Desktop GIS

QGIS's Graduated renderer and ArcGIS Pro's Graduated Colors symbology offer the same core features plus advanced options like rule-based graduated (different classification per category), data-defined size overrides, and histogram displays showing the distribution alongside the breaks. The gis.tools implementation covers the essentials in the browser with zero setup.

Performance Considerations

Jenks natural breaks can be slow on large datasets because its complexity is quadratic. For layers with more than a few thousand features, the tool samples a representative subset (typically 1,000 features) to compute breaks, then applies them to the full layer. This is the same approach QGIS uses.

Data Privacy and Browser-Based Processing

Classification, color assignment, and rendering all happen in your browser. Your attribute values are never transmitted.

Related GIS Concepts

Choropleth. A thematic map that shades areas by a quantitative attribute.

Isarithmic (isopleth) maps. Continuous surfaces mapped with isolines (contours). Graduated styling produces discrete classes; isarithmic maps show continuous variation.

Proportional symbols. Graduated sizing for point features, typically scaled by square root of value.

Dot density. An alternative to choropleth where each feature is represented by many small dots proportional to count.

Frequently Asked Questions

Which classification method should I use?

Jenks for unknown distributions, quantiles for rank-based storytelling, equal interval only when the range is meaningful.

How many classes are optimal?

Four to six. Beyond seven, readers struggle to distinguish shades.

Can I use a diverging palette for non-negative data?

Only if there is a meaningful midpoint (mean, median, baseline). Otherwise use sequential.

Why does my choropleth look wrong?

Usually because you are mapping raw counts instead of rates, or because of the Modifiable Areal Unit Problem.

Related Tools on gis.tools

100% client-side processing - your data stays private and never leaves your device