# API Reference ## Manager A Manager allows to manipulate multiple [Canvas](#canvas) inside a DOM element ### Manager.parent_element *property*: **Element** DOM element containing every canvas Element ### Manager.list_canvas *property*: **list** List of [Canvas](#canvas) managed ### Manager.add_canvas Add a managed canvas Parameters: - *width*(optional): **int** Width in pixel of the canvas Element. Default to 100 - *height*(optional): **int** Height in pixel of the canvas Element. Default to 100 - *position*(optional): **int** Position of the added Canvas in the [parent_element](#manager-parent_element) and in [list_canvas](#manager-list_canvas). Default to 0 Return: **Canvas**: the created [Canvas](#canvas) ### Manager.draw Draw every managed [Canvas](#canvas) ### Manager.remove_canvas Remove a canvas at a given position Parameters: - *position(optional)*: **int** Position of the canvas to delete. Default to 0 ## Canvas ### Canvas.ctx *property*: **CanvasRenderingContext2D** API interface of the associated canvas Element ### Canvas.figure *property*: **Figure** Figure held ### Canvas.draw Render the figure to the canvas ## Figure A figure hold multiple axes. That the object which contains every plot elements ### Figure.width *property*: **int** Width of the figure (related to each axes) ### Figure.height *property*: **int** Height of the figure (related to each axes) ### Figure.list_axes *property*: **list** List of [Axes](#axes). ### Figure.add_axes Add an [Axes](#axes) to this figure Parameters: - *width*(optional): **int** Relative width of the new [Axes](#axes). Default to 50 - *height*(optional): **int** Relative height of the new [Axes](#axes). Default to 50 - *position*(optional): **int** Position of the new [Axes](#axes) in the [list_axes](#figure-list_axes). Default to 0 Return: **Axes**: Added [Axes](#axes) ### Figure.remove_axes Remove an [Axes](#axes) in a given position Parameters: - *position*: **int** Position of the [Axes](#axes) to delete ## Axes An Axes represents one plot in a [Figure](#figure) ### Axes.width *property*: **int** Width of the axes (relative to the [Figure](#figure)) ### Axes.height *property*: **int** Height of the axes (relative to the [Figure](#figure)) ### Axes.title *property*: **String** Title of the axes ### Axes.lines *property*: **list** List of lines ### Axes.plot Plot y versus x as lines Parameters: - *x*: **list** x data - *y*: **list** y data - *linestyle*(optional): **object** Object defining a style for a line. The structure of the object should be: ```json { color: "color", style: "style", } ``` where `"color"` is a string like `rgb(x,y,z)`, or `#abcdef` or a name of a color an,d `"style"` is `solid`, `dotted`, `dashdot` or `dashed`. Default is "black" and "solid" for color and style. - *label*(optional): **String** Label that will be displayed in the legend. Default to empty String ## Line A line, with a color and a line style ### Line.x *property*: **list** xdata ### Line.y *property*: **list** ydata ### Line.linestyle *property*: **object** Object defining a style for a line. The structure of the object should be: ```json { color: "color", style: "style", } ``` where `"color"` is a string like `rgb(x,y,z)`, or `#abcdef` or a name of a color and `"style"` is `solid`, `dotted`, `dashdot` or `dashed` ### Line.label *property*: **String** Label that will be displayed in the legend ### Line.draw Draw the line in the box coordinate Parameters: - *ctx*: **CanvasRenderingContext2D** Context of the canvas - *box*: **list>** Box where to draw the line (absolute dimension) - *view*: **list>** Box where to draw the line (in the xdata and ydata scale). It links absolute coordinate and value. ## get_ext_array Get max or min of a 1d array of number Parameters: - *array*: **list** Array where to get max/min values - *f*: **function** `Math.max` or `Math.min` - *sign*: **int** -1 if max, 1 if min Return: **Number**: Max/min value of the 1d array