Plots overtime

Single plots

# Like plot_overtime() this method will take a single variable and trained hmm, and plot them over time. 
# If you're using behavpy_HMM to look at sleep using the 4 state structure you don't have to specify labels and colours, as they are pre written. However, if you aren't please specify.

# use below to open your saved trained hmmlearn object
with open('/Users/trained_hmms/4_states_hmm.pkl', 'rb') as file: 
    h = pickle.load(file)

df.plot_hmm_overtime(
hmm = h, 
variable = 'moving',
labels = ['Deep sleep', 'Light sleep', 'Light awake', 'Full awake'],
# colours = ['blue', 'green', 'yellow', 'red'], # example colours
wrapped = True, 
bin = 60
)

# You cannot facet using this method, see the next plot for faceting 
An example plot from the plot hmm overtime method

Faceted Plots

To reduce clutter when faceting the plot will become a group of subplots, with each subplot the collective plots of each specimen for each hidden state.

Warning! This method only works for 4 hidden states structures.

# plot_hmm_split works just like above, however you need to specify the column to facet by. You can also specify the arguments if you don't want all the groups from the facet column

df.plot_hmm_split(
hmm = h, 
variable = 'moving', 
facet_col = 'species',
wrapped = True, 
bin = 60
)
An example plot from the hmm split plot method
# You don't always want to decode every group with the same hmm. In fact with different species, mutants, subgroups you should be training a fresh hmm
# if you pass a list to the hmm parameter the same length as the facet_arg argument the method will apply the right hmm to each group

df.plot_hmm_split(
hmm = [hv, he, hw, hs, hy], 
variable = 'moving', 
facet_labels = ['D.virilis', 'D.erecta', 'D.willistoni', 'D.sechellia', 'D.yakuba']
facet_col = 'species',
facet_arg = ['D.vir', 'D.ere', 'D.wil', 'D.sec', 'D.yak'],
wrapped = True, 
bin = [60, 60, 60, 60, 60]
)

Last updated