Makie is not a wrapper around C/C++ plotting libraries. It’s written entirely in Julia, uses GPU-accelerated rendering (via GLMakie or CairoMakie for publication), and supports interactive 3D scenes. using GLMakie, GeoJSON, ArchGDAL Load a GeoJSON of European regions geojson = GeoJSON.read("europe_regions.geojson") Assume df has columns: :region_name, :gdp_per_capita poly_coords = [feature.geometry for feature in geojson]
using Proj4 wgs84 = Proj4.Proj("+proj=longlat +datum=WGS84") webmerc = Proj4.Proj("+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0 +k=1.0 +units=m") Transform a point x_merc, y_merc = Proj4.transform(wgs84, webmerc, -74.006, 40.7128) # NYC julia data kartta
using Zygote loss(params) = sum( (map_projection(data, params) - target_truth).^2 ) grads = gradient(loss, initial_params) That is not possible in Python (where GDAL is a black box) or R (where C callbacks break AD). Julia’s data kartta is not yet as polished as the Python or R ecosystems—some trails are unmarked, and documentation can be sparse. But for the cartographer who needs speed, composability, and the ability to define new projections as code , Julia offers a new continent to explore. Makie is not a wrapper around C/C++ plotting libraries
Colorbar(fig[1, 2], plt) fig
For cartography specifically, Julia’s is maturing fast: ArchGDAL, GeoArrays, and Proj4.jl allow you to reproject, rasterize, and transform coordinate systems at C speed with Julia’s expressiveness. 2. The Base Layers: DataFrames.jl and Typed Mapping Before you draw the map, you need the data model. Unlike pandas’s flexible-but-slow object-dtype columns, DataFrame in Julia is columnar and type-stable. Julia’s data kartta is not yet as polished
using DataFrames, CSV df = CSV.read("earthquakes.csv", DataFrame)