DESCRIPTION
 The 
kplot_alloc function allocates a plotting context for later use by 
kplot_attach_data(3), 
kplot_draw(3), and so on. It must be freed with 
kplot_free(3). The only argument, 
cfg, is copied: all allocated members (e.g., 
clrs and Cairo pattern) are re-allocated or referenced, as the case may be, so the caller can free all memory in the meantime. The options provided via the 
cfg object are as follows:
- 
extrema
- 
A bit-field allowing arbitrary assignment of xy-ranges: EXTREMA_XMIN, EXTREMA_XMAX, EXTREMA_YMIN, and/or EXTREMA_YMAX. This fixates the ranges unconditionally (i.e., no auto-scaling will occur and points or lines drawn outside will be clipped).
- 
extrema_xmin
- 
If EXTREMA_XMIN is set, this value will be used instead of a value computed from the data.
- 
extrema_xmax
- 
See extrema_xmin.
- 
extrema_ymin
- 
See extrema_xmin.
- 
extrema_ymax
- 
See extrema_xmin.
- 
margin
- 
Bitfield of which margins to draw: MARGIN_LEFT, MARGIN_RIGHT, MARGIN_TOP, MARGIN_BOTTOM, or MARGIN_ALL.
- 
marginsz
- 
The width of the margin in user-space Cairo coordinates. These are clamped to be non-negative. The margin is the space between the image boundary and the longest (or tallest) label edge, or if no label is specified on any face, the plot area.
- 
ticlabel
- 
Bitfield of which labels to draw: TICLABEL_LEFT, TICLABEL_RIGHT, TICLABEL_TOP, or TICLABEL_BOTTOM.
- 
ticlabelfont
- 
All font characteristics of the tic labels.
- 
xticlabelpad
- 
Space between horizontal (x-axis) tic labels and the plot area. Specifically, between the edge of the longest label along any face and the plot area.
- 
yticlabelpad
- 
See xticlabelpad.
- 
xticlabelrot
- 
Rotation of horizontal (x-axis) labels (in radians) clamped to 90 degrees. Rotation is clockwise. Note that if this is nonzero, the tic label is aligned under the tic-mark at the top-left part of the field, instead of the middle as is the usual case.
- 
xticlabelfmt
- 
This function may be user-defined for formatting the horizontal x-axis label as a UTF-8 string limited to 128 bytes (including nil terminator). It accepts three arguments: the value to format, the string buffer in which to format, and the size of the buffer. The default is to use snprintf(3) with the %gformat string.
- 
yticlabelfmt
- 
See xticlabelfmt.
- 
border
- 
Bitfield of which borders to draw: BORDER_LEFT, BORDER_RIGHT, BORDER_TOP, BORDER_BOTTOM, or BORDER_ALL.
- 
borderline
- 
The configuration of the border line. See kplot_attach_data(3) for an explanation of the line structure.
- 
clrs
- 
Array of colour configurations for the colour palette. If no colours are specified, which is the default, a default palette will be installed. See kplot_attach_data(3) for a description of the colour structure.
- 
clrsz
- 
The number of colours in clrs. Colour indices index into the clrs array modulo this value.
- 
xtics
- 
The number of tics (and thus labels) to draw along the horizontal x-axis. The border condition (one tic) is drawn in the centre.
- 
ytics
- 
See xtics.
- 
tic
- 
Bitfield of which tics to draw: TIC_LEFT_IN, TIC_RIGHT_IN, TIC_TOP_IN, TIC_BOTTOM_IN, TIC_LEFT_OUT, TIC_RIGHT_OUT, TIC_TOP_OUT, or TIC_BOTTOM_OUT.
- 
ticline
- 
The configuration of the tic line. See kplot_attach_data(3) for an explanation of the line structure.
- 
xaxislabel
- 
The label for the x-axis, shown below the bottom x-axis tic labels (if specified).
- 
x2axislabel
- 
The label for the second x-axis, shown above the top x-axis tic labels (if specified).
- 
yaxislabel
- 
See xaxislabel.
- 
y2axislabel
- 
See xaxislabel.
- 
xaxislabelrot
- 
The clockwise rotation of the x-axis label. Note that this will turn around its centre, so no matter the rotation, it will be correctly buffered on both sides.
- 
yaxislabelrot
- 
See xaxislabelrot.
- 
xaxislabelpad
- 
The padding between the top of the x-axis label and the bottom of the x-axis tics (if specified).
- 
yaxislabelpad
- 
See xaxislabelpad.
- 
axislabelfont
- 
All font characteristics for the xaxislabel and yaxislabel.
- 
grid
- 
Bitfield of which grid lines to draw: GRID_X, GRID_Y, or GRID_ALL.
- 
gridline
- 
The configuration of grid lines.
If 
NULL is passed as a configuration, reasonable defaults are used.