hvPlot 0.10 has just been released! Checkout the blog post and support hvPlot by giving it a 🌟 on Github.

Image#

import hvplot.xarray  # noqa
import xarray as xr

ds = xr.tutorial.open_dataset('air_temperature')
ds
<xarray.Dataset> Size: 31MB
Dimensions:  (lat: 25, time: 2920, lon: 53)
Coordinates:
  * lat      (lat) float32 100B 75.0 72.5 70.0 67.5 65.0 ... 22.5 20.0 17.5 15.0
  * lon      (lon) float32 212B 200.0 202.5 205.0 207.5 ... 325.0 327.5 330.0
  * time     (time) datetime64[ns] 23kB 2013-01-01 ... 2014-12-31T18:00:00
Data variables:
    air      (time, lat, lon) float64 31MB ...
Attributes:
    Conventions:  COARDS
    title:        4x daily NMC reanalysis (1948)
    description:  Data is from NMC initialized reanalysis\n(4x/day).  These a...
    platform:     Model
    references:   http://www.esrl.noaa.gov/psd/data/gridded/data.ncep.reanaly...

When data values are available on an x, y grid, they can often be represented as an image.

ds.hvplot.image()

This is equivalent to specifying:

ds.hvplot.image(x='lon', y='lat', z='air', groupby='time', cmap='kbc_r')

A simpler case would be to take the temperature at just one day. Here we’ll show how to use clabel to control the colorbar and also demonstrate how when the data are symmetric around 0, the “coolwarm” colormap is used by default.

time = '2014-01-01'
data = ds.sel(time=time).mean('time') - 273  # convert to celsius

data.hvplot.image(x='lon', y='lat', z='air', title=time, clabel='T [C]')

Geographic Data#

By setting coastline=True, we can add a coastline feature to the plot and coerce it to the proper aspect.

data.hvplot.image(coastline=True)