# Points ¶

- Title
- Points Element
- Dependencies
- Matplotlib
- Backends
- Matplotlib
- Bokeh

```
import numpy as np
import holoviews as hv
from holoviews import dim, opts
hv.extension('matplotlib')
```

The
```
Points
```

element visualizes as markers placed in a space of two independent variables, traditionally denoted
```
x
```

and
```
y
```

. In HoloViews, the names
```
'x'
```

and
```
'y'
```

are used as the default key dimensions (
```
kdims
```

) of the element. We can see this from the default axis labels when visualizing a simple
```
Points
```

element:

```
np.random.seed(12)
coords = np.random.rand(50,2)
points = hv.Points(coords)
points.opts(color='k', marker='+', s=50)
```

Here both the random
```
x
```

values and random
```
y
```

values are
*
both
*
considered to be the coordinates with no dependency between them (compare this to how
```
Scatter
```

elements are defined). You can think of
```
Points
```

as simply marking positions in some two-dimensional space that can be sliced by specifying a 2D region-of-interest:

```
points + points[0.6:0.8,0.2:0.5]
```

Although the simplest
```
Points
```

element simply mark positions in a two-dimensional space without any associated value this doesn't mean value dimensions aren't supported. Here is an example with two additional quantities for each point, declared as the
```
vdims
```

s
```
z
```

and
```
size
```

visualized as the color and size of the dots, respectively:

```
np.random.seed(10)
data = np.random.rand(100,4)
points = hv.Points(data, vdims=['z', 'size'])
(points + points[0.3:0.7, 0.3:0.7].hist()).opts(
opts.Points(color='z', s=dim('size')*50))
```

In the right subplot, the
```
hist
```

method is used to show the distribution of samples along the first value dimension we added (
*
z
*
).

The marker shape specified above can be any supported by
matplotlib
, e.g.
```
s
```

,
```
d
```

, or
```
o
```

; the other options select the color and size of the marker. For convenience with the
bokeh backend
, the matplotlib marker options are supported using a compatibility function in HoloViews.

**
Note
**
: Although the
```
Scatter
```

element is superficially similar to the
```
Points
```

element (they can generate plots that look identical), the two element types are semantically quite different. The fundamental difference is that
```
Points
```

are used to visualize data where the
*
y
*
variable is
*
dependent
*
. This semantic difference also explains why the histogram generated by
```
hist
```

call above visualizes the distribution of a different dimension than it does for
```
Scatter
```

.

This difference means that
```
Points
```

naturally combine elements that express independent variables in two-dimensional space, for instance
```
Raster
```

types such as
```
Image
```

. Similarly,
```
Scatter
```

expresses a dependent relationship in two-dimensions and combine naturally with
```
Chart
```

types such as
```
Curve
```

.

For full documentation and the available style and plot options, use
```
hv.help(hv.Points).
```

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