import xarray as xr import numpy as np import holoviews as hv from holoviews import opts hv.extension('matplotlib') opts.defaults(opts.Scatter3D(color='Value', cmap='fire', edgecolor='black', s=50)) img = hv.Image((range(10), range(5), np.random.rand(5, 10)), datatype=['grid']) img img.data arr_img = img.clone(datatype=['image']) print(type(arr_img.data)) try: xr_img = img.clone(datatype=['xarray']) print(type(xr_img.data)) except: print('xarray interface could not be imported.') print("Array type: %s with bounds %s" % (type(arr_img.data), arr_img.bounds)) dataset3d = hv.Dataset((range(3), range(5), range(7), np.random.randn(7, 5, 3)), ['x', 'y', 'z'], 'Value') dataset3d hv.Scatter3D(dataset3d) dataset3d.select(x=1).to(hv.Image, ['y', 'z']) + hv.Scatter3D(dataset3d.select(x=1)) (dataset3d.to(hv.Image, ['y', 'z'], 'Value', ['x']) + hv.HoloMap({x: hv.Scatter3D(dataset3d.select(x=x)) for x in range(3)}, kdims='x')) hv.Image(dataset3d.aggregate(['x', 'y'], np.mean)) + hv.Image(dataset3d.reduce(z=np.mean)) hv.Spread(dataset3d.aggregate('z', np.mean, np.std)) * hv.Curve(dataset3d.aggregate('z', np.mean)) dataset3d.to(hv.BoxWhisker, 'x', 'Value', groupby=[]) dataset3d.to(hv.Distribution, 'Value', [], groupby='x').overlay() heatmap = hv.HeatMap((['A', 'B', 'C'], ['a', 'b', 'c', 'd', 'e'], np.random.rand(5, 3))) heatmap + hv.Table(heatmap) n = 8 # Number of bins in each direction xs = np.logspace(1, 3, n) ys = np.linspace(1, 10, n) zs = np.arange((n-1)**2).reshape(n-1, n-1) print('Shape of x-coordinates:', xs.shape) print('Shape of y-coordinates:', ys.shape) print('Shape of value array:', zs.shape) hv.QuadMesh((xs, ys, zs)) n=20 coords = np.linspace(-1.5,1.5,n) X,Y = np.meshgrid(coords, coords); Qx = np.cos(Y) - np.cos(X) Qy = np.sin(Y) + np.sin(X) Z = np.sqrt(X**2 + Y**2) print('Shape of x-coordinates:', Qx.shape) print('Shape of y-coordinates:', Qy.shape) print('Shape of value array:', Z.shape) qmesh = hv.QuadMesh((Qx, Qy, Z)) qmesh xr_ds = xr.tutorial.open_dataset("air_temperature").load() xr_ds hv_ds = hv.Dataset(xr_ds)[:, :, "2013-01-01"] print(hv_ds) airtemp = hv_ds.to(hv.Image, kdims=["lon", "lat"], dynamic=False) airtemp[:, 220:320, :].opts(colorbar=True, fig_size=200) rasm = xr.tutorial.open_dataset("rasm").load() rasm.coords rasm = rasm.isel(time=0, x=slice(0, 200)).assign_coords(x=np.arange(200), y=np.arange(205)) rasm.coords hv.QuadMesh(rasm, ['x', 'y']) + hv.QuadMesh(rasm, ['xc', 'yc']) heatmap.dimension_values('x') heatmap.dimension_values('x', expanded=False) heatmap.dimension_values('x', flat=False) heatmap.dimension_values('z') heatmap.dimension_values('z', flat=False)