""""""""""""""""" Visualization """"""""""""""""" Verse has two different sets of visualization functions for generating plots and animations. Functions for 2D plots use `Plotly Open Source Graphing Library for Python <https://plotly.com/python/>`_. .. contents:: Function list :depth: 3 =================== Common paramteres =================== * ``time_step`` determines the num of digits of time points. Normally, it should be the time step used to compute simulation/verification. Default value is ``None`` which is set as 3. =================== 2D Visualization =================== ---------------------- simulation_tree ---------------------- Shows simulation traces, possibly with multiple brances. Note: Since the plotter functions have similar APIs, in this document, we treat this function as a base function. Its parameters are general and occurred in all remaining functions. We will omit them in the remaining functions and only list some specific parameters. Usage:: simulation_tree(root, map=None, fig=go.Figure(), x_dim = 1, y_dim = 2, print_dim_list=None, map_type='lines', scale_type='trace', label_mode='None', sample_rate=1) Parameters: * ``root``: root node of a simulation trace. Typically, return value of ``Scenario.simulate()``. * ``map``: the map of the scenario plotted as a background. Use ``None`` if there is no map. You may check tutorial for more details. * ``fig``: figure object of type ``plotly.graph_objects.Figure()``. * ``x_dim:`` the dimension of x coordinate in the trace list of every time step. The default value is ``1``. * ``y_dim:`` the dimension of y coordinate in the trace list of every time step. The default value is ``2``. * ``print_dim_list`` the list containing the dimensions of data which will be shown directly or indirectly when the mouse hovers on the point. The default value is ``None``. And then all dimensions will be shown. * ``map_type`` the way to draw the map. It should be ``'lines'`` or ``'fill'`` or ``'detailed'``. The default value is ``'lines'``. * For the ``'lines'`` mode, map is only drawn by margins of lanes. * For the ``'fill'`` mode, the lanes will be filled with semitransparent colors. * For the ``'detailed'`` mode, the lanes will be filled some colors according to the speed limits of lanes(if the information is given). Otherwise, it is the same as the 'lines' mode. * ``scale_type`` the way to scale the coordinate axises. It should be ``'trace'`` or ``'map'``. The default value is ``'trace'``. * For the ``'trace'`` mode, the traces will be in the center of the plot with an appropriate scale. * For the ``'map'`` mode, the map will be in the center of the plot with an appropriate scale. * ``label_mode`` the mode to display labels which indicate mode transitions or not. The default value is ``'None'``. * If it is ``'None'``, then labels will not be displayed. * Otherwise, labels will be displayed. * ``sample_rate`` it determines the points used in the plot. It is useful when the points are too much and the response of the plot is slow. The default value is ``1``. * If ``sample_rate = n`` where ``n`` is a positive integer, then the plotter samples one point for every ``n`` points. ---------------------- simulation_anime ---------------------- It shows the animation of the simulation with/without trail. Usage:: simulation_anime(root, map=None, fig=go.Figure(), x_dim = 1, y_dim = 2, print_dim_list=None, map_type='lines', scale_type='trace', label_mode='None', sample_rate=1, time_step=None, speed_rate=1, anime_mode='normal', full_trace=False) Parameters not occurred in ``simulation_tree``: * ``time_step`` it is used to determine the num of digits of time points. Normally, it should be the time step of simulation/verification and provoided by the user. (May improve to auto determine) The default value is ``None``. * If it's ``None``, then the num of digits is set as 3. * Otherwise, the num of digits is set as the num of digits of the given ``time_step``. * ``speed_rate`` it determines the speed up rate of anime. Due to the performance, it maybe be limited when the response of the plot is slow. The default value is ``1``. * ``anime_mode`` it determines if the trails are displayed or not. The default value is ``'normal'``. * If it's ``'normal'``, then the trails will not be displayed. * Otherwise, the trails will be displayed. * ``full_trace`` it determines if the full trace is displayed or not. The default value is ``False``. * if it's ``False``, then the full trace will not be displayed. * Otherwise, the full trace will be displayed. ---------------------- reachtube_tree ---------------------- It statically shows the reachtubes, possibly with multiple brances. Usage:: reachtube_tree(root, map=None, fig=go.Figure(), x_dim = 1, y_dim = 2, print_dim_list=None, map_type='lines', scale_type='trace', label_mode='None', sample_rate=1, combine_rect=1): Parameters not occurred in ``simulation_tree``: * ``combine_rect`` it determines the way of displaying reachtube. Specifically, it can combine specified number of reachtubes as a rectangle. The default value is ``1`` here. ---------------------- reachtube_anime ---------------------- It shows the animation of the reachtube. Usage:: reachtube_anime(root, map=None, fig=go.Figure(), x_dim = 1, y_dim = 2, print_dim_list=None, map_type='lines', scale_type='trace', label_mode='None', sample_rate=1, time_step=None, speed_rate=1, combine_rect=None) Parameters not occurred in ``simulation_tree``: * ``speed_rate`` it determines the speed up rate of anime. Due to the performance, it maybe be limited when the response of the plot is slow. The default value is ``1``. * ``combine_rect`` it determines the way of displaying reachtube. Specifically, it can combine specified number of reachtubes as a rectangle. The default value is ``None`` here, which means no combination. =================== 3D Visualization ===================