Source code for src.plot.entropy

import matplotlib.pyplot as plt
import numpy as np

from ..obj.motif_trajectory import _motif_trajectory_as_array
from ..obj.units import transform_unit_to_str
from .colors import _choose_color

from matplotlib.colors import LinearSegmentedColormap

[docs] def entropy(times, x_t, linestyle = '-', color = 'b', alpha = 1., label = None, axis = None ) -> None: if axis is None: axis = plt.gca() x_t = x_t.reshape((len(x_t),-1)) x_total = np.sum(x_t, axis=1) p = x_t / x_total[:,None] entrpy = np.zeros(p.shape) entrpy[p!=0] = p[p!=0]*np.log2(p[p!=0]) entrpy = -np.sum(entrpy, axis = 1) axis.plot(times.val, entrpy, linestyle = linestyle, color = color, alpha = alpha, label = label ) axis.set_xlabel('Time ' + transform_unit_to_str(times.domain[0].units)) axis.set_ylabel('Entropy [bits]')
[docs] def motif_entropy( motif_trajectory_ensemble, linestyle = '-', color = 'b', alpha = 1., label = None, axis = None ) -> None: ii=0 for motif_trajectory in motif_trajectory_ensemble.trajectories: colr = _choose_color(color, ii/np.max([1,len(motif_trajectory_ensemble.trajectories)-1])) times = motif_trajectory.times x_t, _ = _motif_trajectory_as_array(motif_trajectory) entropy(times, x_t, linestyle = linestyle, color = colr, alpha = alpha, label = label, axis = axis ) ii += 1