lichartee/doc/references.md

268 lines
4.1 KiB
Markdown

# 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<Canvas>**
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<Axes>**
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<Line>**
List of lines
### Axes.plot
Plot y versus x as lines
Parameters:
- *x*: **list<Number>**
x data
- *y*: **list<Number>**
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<Number>**
xdata
### Line.y
*property*: **list<Number>**
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 an,d `"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<list<int>>**
Box where to draw the line (absolute dimension)
- *view*: **list<list<Number>>**
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<Number>**
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