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=[]),
delta_phi=Trace(label='Vector:delta_phi', 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)
8
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', 'delta_phi', 'distance', 'dot']
>>> # key names of the traces in the collection
>>> list(traces.keys())
['x', 'y', 'r', 'phi', 'theta', 'delta_phi', '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=[])
Delta Angle Trace in Radians#
You can get the delta angle Trace from \(-\pi\) to \(+\pi\)
with the delta_phi attribute from the VectorTraces
collection.
The Trace with the delta angles in radians of the consecutive x,y-points
computed from the x-coordinate, y-coordinate samples is
returned.
A positive delta angle indicates an anti-clockwise rotation, and a negative delta angle a clockwise rotation.
>>> # delta angle trace in radians by attribute
>>> traces.delta_phi
Trace(label='Vector:delta_phi', samples=[])
>>> # delta angle trace in radians by key
>>> traces['delta_phi']
Trace(label='Vector:delta_phi', 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)