# Points ¶

Title
Points Element
Dependencies
Matplotlib
Backends
Matplotlib
Bokeh
In [1]:
import numpy as np
import holoviews as hv
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  of the element. We can see this from the default axis labels when visualizing a simple  Points  element:

In [2]:
%%opts Points (color='k' marker='+' size=10)
np.random.seed(12)
coords = np.random.rand(50,2)
hv.Points(coords)

Out[2]:

Here both the random x values and random y values are both considered to be the 'data' 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:

In [3]:
%%opts Points (color='k' marker='+' size=10)
hv.Points(coords) + hv.Points(coords)[0.6:0.8,0.2:0.5]

Out[3]:

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  value_dimension  s z and α visualized as the color and size of the dots, respectively:

In [4]:
%%opts Points [color_index=2 size_index=3 scaling_factor=50]
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()

Out[4]:

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).