Filled contours

In [1]:
import numpy as np
import holoviews as hv
import geoviews as gv
import geoviews.feature as gf
import cartopy.crs as ccrs

gv.extension('matplotlib')
%output fig='svg' size=200

Define data

In [2]:
def sample_data(shape=(73, 145)):
    """Returns ``lons``, ``lats`` and ``data`` of some fake data."""
    nlats, nlons = shape
    ys = np.linspace(-np.pi / 2, np.pi / 2, nlats)
    xs = np.linspace(0, 2 * np.pi, nlons)
    lons, lats = np.meshgrid(xs, ys)
    wave = 0.75 * (np.sin(2 * lats) ** 8) * np.cos(4 * lons)
    mean = 0.5 * np.cos(2 * lats) * ((np.sin(2 * lats)) ** 2 + 2)

    lats = np.rad2deg(ys)
    lons = np.rad2deg(xs)
    data = wave + mean

    return lons, lats, data

lons, lats, data = sample_data()
contours = gv.FilledContours((lons, lats, data))

Plot

In [3]:
%%opts FilledContours [projection=ccrs.Mollweide()] (cmap='nipy_spectral')
contours * gf.coastline
Out[3]:

Download this notebook from GitHub (right-click to download).