Referencing#

Reference baselines are readily available!

basic references#

References can be added by passing one or more of x0s, x1s, y0s, y1s.

[1]:
import ahlive as ah
arr = ah.Array([0, 1, 2], [3, 4, 5])
arr = arr.reference(y0s=4)
arr.render()
gifsicle: warning: trivial adaptive palette (only 86 colors in source)
[1]:

Reference values can be animated too if an Iterable is passed.

[2]:
import ahlive as ah
arr = ah.Array([0, 1, 2], [3, 4, 5])
arr = arr.reference(y0s=[3, 3.5, 4.5])
arr.render()
gifsicle: warning: trivial adaptive palette (only 84 colors in source)
[2]:

dynamic references#

Like remarks, rather than setting static values for references, passing a label from the dataset, e.g. x, y, c, state_label, and inline_label (without the “s” suffix), can dynamically grab the value for that label. Any labels listed under “Data variables” is valid for use as long as it contains a state dimension.

[3]:
import ahlive as ah
arr = ah.Array([0, 1, 2], [3, 4, 5])
arr = arr.reference(y0s='y')
arr.render()
gifsicle: warning: trivial adaptive palette (only 124 colors in source)
[3]:

For multiple items, last will only plot the last item’s reference.

[4]:
import ahlive as ah
arr = ah.Array([0, 1, 2], [3, 4, 5])
arr = arr - arr
arr = arr.reference(y0s='y', last=True)
arr.render()
gifsicle: warning: trivial adaptive palette (only 131 colors in source)
[4]:

vertical span#

The reference chart changes depending on whether x0s, x1s, y0s, y1s is set.

If x0s and x1s is set, a vertical span is generated.

[5]:
import ahlive as ah
arr = ah.Array([0, 1, 2], [3, 4, 5])
arr = arr.reference(x0s=[0, 1, 2], x1s=[0, 2, 4])
arr.render()
gifsicle: warning: trivial adaptive palette (only 109 colors in source)
[5]:

horizontal span#

Similarly if y0s and y1s is set, a horizontal span is generated.

[6]:
import ahlive as ah
arr = ah.Array([0, 1, 2], [3, 4, 5])
arr = arr.reference(y0s=[3.25, 4, 4.5], y1s=[3, 4.5, 5])
arr.render()
gifsicle: warning: trivial adaptive palette (only 121 colors in source)
[6]:

rectangular bound#

If all x0s, x1s, y0s, and y1s is set, a rectangle is generated.

[7]:
import ahlive as ah
arr = ah.Array([0, 1, 2], [3, 4, 5])
arr = arr.reference(x0s=[0, 1, 2], x1s=[0, 2, 4], y0s=[3.25, 4, 4.5], y1s=[3, 4.5, 5])
arr.render()
gifsicle: warning: trivial adaptive palette (only 91 colors in source)
[7]:

scatter point#

If only x0s and y0s is set, a point is generated.

[8]:
import ahlive as ah
arr = ah.Array([0, 1, 2], [3, 4, 5])
arr = arr.reference(x0s=[0, 1, 2], y0s=[3.25, 4, 4.5])
arr.render()
gifsicle: warning: trivial adaptive palette (only 109 colors in source)
[8]:

inline labels#

References also support inline_labels, but requires an inline_locs if the opposite axis is not set, i.e. y0s is not set when only x0s is set.

[9]:
import ahlive as ah
arr = ah.Array([0, 1, 2], [3, 4, 5])
arr = arr.reference(
    x0s=[0.25, 0.75, 1.75],
    inline_locs=3.5,
    inline_labels=['first', 'second', 'third']
)
arr.render()
gifsicle: warning: trivial adaptive palette (only 60 colors in source)
[9]:

state labels#

Furthermore, references support state_labels.

[10]:
import ahlive as ah
arr = ah.Array([0, 1, 2], [3, 4, 5])
arr = arr.reference(
    x0s=[0.25, 0.75, 1.75],
    state_labels=['a', 'bb', 'ccc']
)
arr.render()
gifsicle: warning: trivial adaptive palette (only 58 colors in source)
[10]:

standalone reference#

If desired, references can be standalone by instantiating the class object, ah.Reference. The class works the same way; the only difference is that passing a label to substitute in the values is not possible, unless it’s overlaid with another object.

[11]:
import ahlive as ah
ref = ah.Reference(
    x0s=[0, 1],
    inline_locs=0,
    inline_labels=['A', 'B'],
    state_labels=['d', 'e']
)
ref.render()
gifsicle: warning: trivial adaptive palette (only 30 colors in source)
[11]: