# GridSpace#

Title
GridSpace Container
Dependencies
Matplotlib
Backends
Matplotlib
Bokeh
Plotly
```import numpy as np
import holoviews as hv
hv.extension('matplotlib')
```

A `GridSpace` is a two-dimensional dictionary of HoloViews objects presented onscreen as a grid. In one sense, due to the restriction on its dimensionality, a `GridSpace` may be considered a special case of `HoloMap`. In another sense, `GridSpace` may be seen as more general as a `GridSpace` can hold a `HoloMap` but the converse is not permitted; see the Building Composite Objects user guide for details on how to compose containers.

## `GridSpace` holds two-dimensional dictionaries#

Using the `sine_curve` function below, we can declare a two-dimensional dictionary of `Curve` elements, where the keys are 2-tuples corresponding to (phase, frequency) values:

```def sine_curve(phase, freq):
xvals = [0.1* i for i in range(100)]
return hv.Curve((xvals, [np.sin(phase+freq*x) for x in xvals]))

phases      = [0, np.pi/2, np.pi, 3*np.pi/2]
frequencies = [0.5, 0.75, 1.0, 1.25]
curve_dict_2D = {(p,f):sine_curve(p,f) for p in phases for f in frequencies}
```

We can now pass this dictionary of curves to `GridSpace`:

```gridspace = hv.GridSpace(curve_dict_2D, kdims=['phase', 'frequency'])
gridspace
```

## `GridSpace` is similar to `HoloMap`#

Other than the difference in the visual semantics, whereby `GridSpaces` display their contents together in a two-dimensional grid, `GridSpaces` are very similar to `HoloMap`s (see the `HoloMap` notebook for more information).

One way to demonstrate the similarity of these two containers is to cast our `gridspace` object to `HoloMap` and back to a `GridSpace`:

```hmap = hv.HoloMap(gridspace)
hmap + hv.GridSpace(hmap)
```
This web page was generated from a Jupyter notebook and not all interactivity will work on this website. Right click to download and run locally for full Python-backed interactivity.