Vector Traces

The vector trace collection is used to transform the signal samples of two signal traces representing the x and y-coordinates of the 2-dimensional points within the cartesian coordinate system into polar coordinate traces representing the radius and the angle of the vectors in the polar coordinate system.

Polar Transformation of two Traces

You can transform with the polar() function the signal samples of two signal traces representing the x and y-coordinates of the 2-dimensional points within the cartesian coordinate system into polar coordinate signal traces for the radius and angle of the vectors in the polar coordinate system.

A dict with the produced signal traces is returned.

>>> polar(x=Trace('Signal', [1, 0, -1, 0]), y=[0, 1, 0, -1])
{'r': Trace(label='Vector:r',
            samples=[1.0, 1.0, 1.0, 1.0]),
 'phi': Trace(label='Vector:phi',
              samples=[0.0,
                       1.5707963267948966,
                       3.141592653589793,
                       -1.5707963267948966]),
 'theta': Trace(label='Vector:theta',
                samples=[0.0, 90.0, 180.0, 270.0])}

Create the Trace Collection

You can create a vector trace collection without x,y-coordinates by calling the VectorTraces class.

>>> # create an empty vector trace collection
>>> traces = VectorTraces()
>>> traces
VectorTraces(x=Trace(label='Trace', samples=[]),
             y=Trace(label='Trace', samples=[]),
             r=Trace(label='Vector:r', samples=[]),
             phi=Trace(label='Vector:phi', samples=[]),
             theta=Trace(label='Vector:theta', samples=[]),
             distance=Trace(label='Vector:distance', samples=[]),
             dot=Trace(label='Vector:dot', samples=[]))

Number of Traces

You can get the number of the traces in the VectorTraces collection with the built-in function len().

>>> # number of traces in the collection
>>> len(traces)
7

Names of the Traces

You can get the list with the names of the traces in the VectorTraces collection.

A list with the key names of the traces is returned.

>>> # key names of the traces in the collection
>>> list(traces)
['x', 'y', 'r', 'phi', 'theta', 'distance', 'dot']
>>> # key names of the traces in the collection
>>> list(traces.keys())
['x', 'y', 'r', 'phi', 'theta', 'distance', 'dot']

x-Coordinate Trace

You can get the vector x-coordinate Trace with the x attribute from the VectorTraces collection.

The Trace with the vector x-coordinates is returned.

>>> # vector x-coordinate trace by attribute
>>> traces.x
Trace(label='Trace', samples=[])
>>> # vector x-coordinate trace by key
>>> traces['x']
Trace(label='Trace', samples=[])

y-Coordinate Trace

You can get the vector y-coordinateTrace with the y attribute from the VectorTraces collection.

The Trace with the vector y-coordinates is returned.

>>> # vector y-coordinate trace by attribute
>>> traces.y
Trace(label='Trace', samples=[])
>>> # vector y-coordinate trace by key
>>> traces['y']
Trace(label='Trace', samples=[])

Radius Trace

You can get the vector radius Trace with the r attribute from the VectorTraces collection.

The Trace with the vector radii computed from the x-coordinate, y-coordinate samples is returned.

>>> # radius trace by attribute
>>> traces.r
Trace(label='Vector:r', samples=[])
>>> # radius trace by key
>>> traces['r']
Trace(label='Vector:r', samples=[])

Angle Trace in Radians

You can get the vector angle Trace from \(-\pi\) to \(+\pi\) with the phi attribute from the VectorTraces collection.

The Trace with the vector angles in radians computed from the x-coordinate, y-coordinate samples is returned.

>>> # vector angle trace in radians by attribute
>>> traces.phi
Trace(label='Vector:phi', samples=[])
>>> # vector angle trace in radians by key
>>> traces['phi']
Trace(label='Vector:phi', samples=[])

Angle Trace in Degree

You can get the vector angle Trace from 0 to 360 degree with the theta attribute from the VectorTraces collection.

The Trace with the vector angles in degree computed from the x-coordinate, y-coordinate samples is returned.

>>> # vector angle trace in degree by attribute
>>> traces.theta
Trace(label='Vector:theta', samples=[])
>>> # vector angle trace in degree by key
>>> traces['theta']
Trace(label='Vector:theta', samples=[])

Euclidean Distance Trace

You can get the euclidean distance Trace with the distance attribute from the VectorTraces collection.

The Trace with the euclidean distances of the consecutive x,y-points computed from the x-coordinate, y-coordinate samples is returned.

>>> # euclidean distance trace by attribute
>>> traces.distance
Trace(label='Vector:distance', samples=[])
>>> # euclidean distance trace by key
>>> traces['distance']
Trace(label='Vector:distance', samples=[])

Dot Product Trace

You can get the dot product Trace with the dot attribute from the VectorTraces collection.

The Trace with the dot products of the consecutive x,y-points computed from the x-coordinate, y-coordinate samples is returned.

>>> # dot product trace by attribute
>>> traces.dot
Trace(label='Vector:dot', samples=[])
>>> # dot product trace by key
>>> traces['dot']
Trace(label='Vector:dot', samples=[])

Create a Polar Plot

You can create a polar plot of the VectorTraces by calling the method plot().

A new plotly Scatterpolar trace is returned.

>>> VectorTraces(Trace('x', [1, 0, -1, 0.5]),
...              Trace('y', [0, 0.75, 0, -0.5])).plot()
Scatterpolar({
    'mode': 'lines+markers',
    'name': 'Vector',
    'r': [1.0, 0.75, 1.0, 0.7071067811865476],
    'theta': [0.0, 90.0, 180.0, 315.0]
})

(Source code, html)