Source code for whatstk.graph.figures.scatter

"""Scatter plot figures."""


import plotly.graph_objs as go


[docs]def fig_scatter_time(user_data, username_to_color=None, title="", xlabel=None): """Obtain Figure to plot using plotly. ``user_data`` must be a pandas.DataFrame with timestamps as index and a column for each user. You can easily generate suitable ``user_data`` using the function :func:`get_interventions_count <whatstk.analysis.get_interventions_count>` (disclaimer: not compatible with ``date_mode='hourweekday'``). Args: user_data (pandas.DataFrame): Input data. Shape nrows x ncols, where nrows = number of timestaps and ncols = number of users. username_to_color (dict, optional). Dictionary mapping username to color. Defaults to None. title (str, optional): Title of figure. Defaults to "". xlabel (str, optional): x-axis label title. Defaults to None. Returns: plotly.graph_objs.Figure .. seealso:: * :func:`get_interventions_count <whatstk.analysis.get_interventions_count>` """ # Create a trace data = [] for username in user_data: trace = go.Scatter( x=user_data.index, y=user_data[username], showlegend=True, name=username, text=user_data.index, line=dict(color=username_to_color[username]) if username_to_color is not None else None ) data.append(trace) layout = dict( title=title, xaxis=dict(title=xlabel) ) fig = go.Figure(data=data, layout=layout) return fig