hvPlot.image#

hvPlot.image(x=None, y=None, z=None, colorbar=True, **kwds)[source]#

Image plot

You can use image to display for example geographic data with independent latitude and longitude fields and a third dependent field.

Reference: https://hvplot.holoviz.org/ref/api/manual/hvplot.hvPlot.image.html

Plotting options: https://hvplot.holoviz.org/ref/plotting_options/index.html

Parameters:
xstring, optional

The coordinate variable along the x-axis

ystring, optional

The coordinate variable along the y-axis

zstring, optional

The data variable to plot

colorbar: boolean

Whether to display a colorbar

**kwdsoptional

Additional keywords arguments are documented in Plotting Options. Run hvplot.help('image') for the full method documentation.

Returns:
holoviews.element.Image / Panel object

You can print the object to study its composition and run:

import holoviews as hv
hv.help(the_holoviews_object)

to learn more about its parameters and options.

References

Backend-specific styling options#

alpha, cmap, muted, visible

alpha, clims, cmap, filterrad, interpolation, norm, visible

Examples#

Basic image plot#

colorbar is True by default.

import hvplot.xarray  # noqa
import numpy as np
import xarray as xr

x = np.linspace(0, 10, 100)
y = np.linspace(0, 5, 50)
X, Y = np.meshgrid(x, y)
data = np.exp(np.sin(X) * np.cos(Y) * 3)
ds = xr.Dataset({"value": (["y", "x"], data)}, coords={"y": y, "x": x})

ds.hvplot.image()

Air temperature image grid#

Let’s display an image from a real-world dataset.

import hvplot.xarray  # noqa

ds = hvplot.sampledata.air_temperature("xarray").sel(time="2014-02-25 12:00")

ds.hvplot.image(x="lon", y="lat", z="air", cmap="viridis", data_aspect=1)

Use of groupby#

When the grid has more dimensions, like time in the example below, widgets are automatically created to explore further the dataset. This is equivalent to setting the groupby to the remaining dimension(s).

import hvplot.xarray  # noqa

ds = hvplot.sampledata.air_temperature("xarray").isel(time=[0, 1])

ds.hvplot.image(
    x="lon", y="lat", z="air", groupby="time",
    frame_width=400, data_aspect=1, dynamic=False,
)

Use of logz#

import hvplot.xarray  # noqa
import numpy as np
import xarray as xr

x = np.linspace(0, 10, 100)
y = np.linspace(0, 5, 50)
X, Y = np.meshgrid(x, y)
data = np.exp(np.sin(X) * np.cos(Y) * 3) * 100
ds = xr.Dataset({"value": (["y", "x"], data)}, coords={"y": y, "x": x})

ds.hvplot.image(logz=True)

Image vs. Quadmesh#

The constructor of the HoloViews Image element, object returned by an image call, attempts to validate the input data by ensuring it is regularly sampled. In some cases, your data may be not be regularly sampled to a sufficiently high precision in which case you will see an exception recommending the use of the Quadmesh element instead. If you see this message and are sure that the Image element is appropriate, you can set the rtol value globally using hv.config.image_rtol in to allow a higher deviation in sample spacing than the default of 10e-6. If not, use the quadmesh method.

import hvplot.xarray  # noqa

ds = hvplot.sampledata.air_temperature("xarray").sel(time="2014-02-25 12:00")
# Emulate irregular grid
ds.coords["lat"] = ds.coords["lat"]**2

ds.hvplot.image(x="lon", y="lat", z="air", cmap="blues", width=400, height=400)
WARNING:param.Image00677: Image dimension lat is not evenly sampled to relative tolerance of 0.001. Please use the QuadMesh element for irregularly sampled data or set a higher tolerance on hv.config.image_rtol or the rtol parameter in the Image constructor.
WARNING:param.Image00677: Image dimension lat is not evenly sampled to relative tolerance of 0.001. Please use the QuadMesh element for irregularly sampled data or set a higher tolerance on hv.config.image_rtol or the rtol parameter in the Image constructor.
This web page was generated from a Jupyter notebook and not all interactivity will work on this website.