pllegend - Plot legend using discretely annotated filled
boxes, lines, and/or lines of symbols
pllegend(p_legend_width, p_legend_height,
opt, position, x, y, plot_width,
bg_color, bb_color, bb_style, nrow,
ncolumn, nlegend, opt_array, text_offset,
text_scale, text_spacing, test_justification,
text_colors, text, box_colors, box_patterns,
box_scales, box_line_widths, line_colors,
line_styles, line_widths, symbol_colors,
symbol_scales, symbol_numbers, symbols)
Routine for creating a discrete plot legend with a plotted filled
box, line, and/or line of symbols for each annotated legend entry. (See
plcolorbar(3plplot) for similar functionality for creating continuous
color bars.) The arguments of pllegend provide control over the location and
size of the legend as well as the location and characteristics of the
elements (most of which are optional) within that legend. The resulting
legend is clipped at the boundaries of the current subpage. (N.B. the
adopted coordinate system used for some of the parameters is defined in the
documentation of the position parameter.)
Redacted form: pllegend(p_legend_width, p_legend_height, opt,
position, x, y, plot_width, bg_color, bb_color, bb_style, nrow, ncolumn,
opt_array, text_offset, text_scale, text_spacing, test_justification,
text_colors, text, box_colors, box_patterns, box_scales, box_line_widths,
line_colors, line_styles, line_widths, symbol_colors, symbol_scales,
symbol_numbers, symbols)
This function is used in examples 4, 26, and 33.
- p_legend_width
(PLFLT_NC_SCALAR(3plplot), output)
- Returned value of the legend width in adopted coordinates. This quantity
is calculated from plot_width, text_offset, ncolumn
(possibly modified inside the routine depending on nlegend and
nrow), and the length (calculated internally) of the longest text
string.
- p_legend_height
(PLFLT_NC_SCALAR(3plplot), output)
- Returned value of the legend height in adopted coordinates. This quantity
is calculated from text_scale, text_spacing, and nrow
(possibly modified inside the routine depending on nlegend and
nrow).
- opt
(PLINT(3plplot), input)
- opt contains bits controlling the overall legend. If the
PL_LEGEND_TEXT_LEFT bit is set, put the text area on the left of the
legend and the plotted area on the right. Otherwise, put the text area on
the right of the legend and the plotted area on the left. If the
PL_LEGEND_BACKGROUND bit is set, plot a (semitransparent) background for
the legend. If the PL_LEGEND_BOUNDING_BOX bit is set, plot a bounding box
for the legend. If the PL_LEGEND_ROW_MAJOR bit is set and (both of the
possibly internally transformed) nrow > 1 and ncolumn
> 1, then plot the resulting array of legend entries in row-major
order. Otherwise, plot the legend entries in column-major order.
- position
(PLINT(3plplot), input)
- position contains bits which control the overall position of the
legend and the definition of the adopted coordinates used for positions
just like what is done for the position argument for
plcolorbar(3plplot). However, note that the defaults for the
position bits (see below) are different than the
plcolorbar(3plplot) case. The combination of the PL_POSITION_LEFT,
PL_POSITION_RIGHT, PL_POSITION_TOP, PL_POSITION_BOTTOM,
PL_POSITION_INSIDE, and PL_POSITION_OUTSIDE bits specifies one of the 16
possible standard positions (the 4 corners and centers of the 4 sides for
both the inside and outside cases) of the legend relative to the adopted
coordinate system. The corner positions are specified by the appropriate
combination of two of the PL_POSITION_LEFT, PL_POSITION_RIGHT,
PL_POSITION_TOP, and PL_POSITION_BOTTOM bits while the sides are specified
by a single value of one of those bits. The adopted coordinates are
normalized viewport coordinates if the PL_POSITION_VIEWPORT bit is set or
normalized subpage coordinates if the PL_POSITION_SUBPAGE bit is set.
Default position bits: If none of PL_POSITION_LEFT, PL_POSITION_RIGHT,
PL_POSITION_TOP, or PL_POSITION_BOTTOM are set, then use the combination
of PL_POSITION_RIGHT and PL_POSITION_TOP. If neither of PL_POSITION_INSIDE
or PL_POSITION_OUTSIDE is set, use PL_POSITION_INSIDE. If neither of
PL_POSITION_VIEWPORT or PL_POSITION_SUBPAGE is set, use
PL_POSITION_VIEWPORT.
- x (PLFLT(3plplot),
input)
- X offset of the legend position in adopted coordinates from the specified
standard position of the legend. For positive x, the direction of motion
away from the standard position is inward/outward from the standard corner
positions or standard left or right positions if the
PL_POSITION_INSIDE/PL_POSITION_OUTSIDE bit is set in position. For
the standard top or bottom positions, the direction of motion is toward
positive X.
- y (PLFLT(3plplot),
input)
- Y offset of the legend position in adopted coordinates from the specified
standard position of the legend. For positive y, the direction of motion
away from the standard position is inward/outward from the standard corner
positions or standard top or bottom positions if the
PL_POSITION_INSIDE/PL_POSITION_OUTSIDE bit is set in position. For
the standard left or right positions, the direction of motion is toward
positive Y.
- plot_width
(PLFLT(3plplot), input)
- Horizontal width in adopted coordinates of the plot area (where the
colored boxes, lines, and/or lines of symbols are drawn) of the
legend.
- bg_color
(PLINT(3plplot), input)
- The cmap0 color of the background for the legend
(PL_LEGEND_BACKGROUND).
- bb_color
(PLINT(3plplot), input)
- The cmap0 color of the bounding-box line for the legend
(PL_LEGEND_BOUNDING_BOX).
- bb_style
(PLINT(3plplot), input)
- The pllsty style number for the bounding-box line for the legend
(PL_LEGEND_BACKGROUND).
- nrow
(PLINT(3plplot), input)
- The number of rows in the matrix used to render the nlegend legend
entries. For internal transformations of nrow, see further remarks
under nlegend.
- ncolumn
(PLINT(3plplot), input)
- The number of columns in the matrix used to render the nlegend
legend entries. For internal transformations of ncolumn, see
further remarks under nlegend.
- nlegend
(PLINT(3plplot), input)
- Number of legend entries. The above nrow and ncolumn values
are transformed internally to be consistent with nlegend. If either
nrow or ncolumn is non-positive it is replaced by 1. If the
resulting product of nrow and ncolumn is less than
nlegend, the smaller of the two (or nrow, if nrow ==
ncolumn) is increased so the product is >= nlegend. Thus,
for example, the common nrow = 0, ncolumn = 0 case is
transformed internally to nrow = nlegend, ncolumn =
1; i.e., the usual case of a legend rendered as a single column.
- opt_array
(PLINT_VECTOR(3plplot), input)
- A vector of nlegend values of options to control each individual
plotted area corresponding to a legend entry. If the PL_LEGEND_NONE
bit is set, then nothing is plotted in the plotted area. If the
PL_LEGEND_COLOR_BOX, PL_LEGEND_LINE, and/or
PL_LEGEND_SYMBOL bits are set, the area corresponding to a legend
entry is plotted with a colored box; a line; and/or a line of
symbols.
- text_offset
(PLFLT(3plplot), input)
- Offset of the text area from the plot area in units of character
width.
- text_scale
(PLFLT(3plplot), input)
- Character height scale for text annotations.
- text_spacing
(PLFLT(3plplot), input)
- Vertical spacing in units of the character height from one legend entry to
the next.
- text_justification
(PLFLT(3plplot), input)
- Justification parameter used for text justification. The most common
values of text_justification are 0., 0.5, or 1. corresponding to a text
that is left justified, centred, or right justified within the text area,
but other values are allowed as well.
- text_colors
(PLINT_VECTOR(3plplot), input)
- A vector containing nlegend cmap0 text colors.
- text
(PLCHAR_MATRIX(3plplot), input)
- A vector of nlegend UTF-8 character strings containing the legend
annotations.
- box_colors
(PLINT_VECTOR(3plplot), input)
- A vector containing nlegend cmap0 colors for the discrete colored
boxes (PL_LEGEND_COLOR_BOX).
- box_patterns
(PLINT_VECTOR(3plplot), input)
- A vector containing nlegend patterns (plpsty indices) for the
discrete colored boxes (PL_LEGEND_COLOR_BOX).
- box_scales
(PLFLT_VECTOR(3plplot), input)
- A vector containing nlegend scales (units of fraction of character
height) for the height of the discrete colored boxes
(PL_LEGEND_COLOR_BOX).
- box_line_widths
(PLFLT_VECTOR(3plplot), input)
- A vector containing nlegend line widths for the patterns specified
by box_patterns (PL_LEGEND_COLOR_BOX).
- line_colors
(PLINT_VECTOR(3plplot), input)
- A vector containing nlegend cmap0 line colors
(PL_LEGEND_LINE).
- line_styles
(PLINT_VECTOR(3plplot), input)
- A vector containing nlegend line styles (plsty indices)
(PL_LEGEND_LINE).
- line_widths
(PLFLT_VECTOR(3plplot), input)
- A vector containing nlegend line widths
(PL_LEGEND_LINE).
- symbol_colors
(PLINT_VECTOR(3plplot), input)
- A vector containing nlegend cmap0 symbol colors
(PL_LEGEND_SYMBOL).
- symbol_scales
(PLFLT_VECTOR(3plplot), input)
- A vector containing nlegend scale values for the symbol height
(PL_LEGEND_SYMBOL).
- symbol_numbers
(PLINT_VECTOR(3plplot), input)
- A vector containing nlegend numbers of symbols to be drawn across
the width of the plotted area (PL_LEGEND_SYMBOL).
- symbols
(PLCHAR_MATRIX(3plplot), input)
- A vector of nlegend UTF-8 character strings containing the legend
symbols. (PL_LEGEND_SYMBOL).
Many developers (who are credited at
http://plplot.org/credits.php) have contributed to PLplot over its long
history.
PLplot documentation at http://plplot.org/documentation.php.