PLSHADE(3plplot) | PLplot API | PLSHADE(3plplot) |

# NAME¶

**plshade** - Shade individual region on the basis of value

# SYNOPSIS¶

**plshade**(*a*, *nx*, *ny*, *defined*,
*xmin*, *xmax*, *ymin*, *ymax*, *shade_min*,
*shade_max*, *sh_cmap*, *sh_color*, *sh_width*,
*min_color*, *min_width*, *max_color*, *max_width*,
*fill*, *rectangular*, *pltr*, *pltr_data*)

# DESCRIPTION¶

Shade individual region on the basis of value. Use
**plshades**(3plplot) if you want to shade a number of contiguous regions
using continuous colors. In particular the edge contours are treated
properly in **plshades**(3plplot). If you attempt to do contiguous
regions with **plshade**(3plplot) the contours at the edge of the shade
are partially obliterated by subsequent plots of contiguous shaded
regions.

Redacted form: General: **plshade(a, defined, xmin, xmax, ymin,
ymax, shade_min, shade_max, sh_cmap, sh_color, sh_width, min_color,
min_width, max_color, max_width, fill, rectangular, pltr, pltr_data)**

This function is used in example 15.

# ARGUMENTS¶

*a*(**PLFLT_MATRIX**(3plplot), input)- A matrix containing function values to plot. Should have dimensions of
*nx*by*ny*. *nx*(**PLINT**(3plplot), input)- First dimension of the matrix "a".
*ny*(**PLINT**(3plplot), input)- Second dimension of the matrix "a".
*defined*(**PLDEFINED_callback**(3plplot), input)- Callback function specifying the region that should be plotted in the shade plot. This function accepts x and y coordinates as input arguments and must return 1 if the point is to be included in the shade plot and 0 otherwise. If you want to plot the entire shade plot (the usual case), this argument should be set to NULL.
*xmin, xmax, ymin, ymax*(**PLFLT**(3plplot), input)- See the discussion of
*pltr*below for how these arguments are used (only for the special case when the callback function*pltr*is not supplied). *shade_min*(**PLFLT**(3plplot), input)- Defines the lower end of the interval to be shaded. If shade_max <=
shade_min,
**plshade**(3plplot) does nothing. *shade_max*(**PLFLT**(3plplot), input)- Defines the upper end of the interval to be shaded. If shade_max <=
shade_min,
**plshade**(3plplot) does nothing. *sh_cmap*(**PLINT**(3plplot), input)- Defines color map. If
*sh_cmap*=0, then*sh_color*is interpreted as a cmap0 (integer) index. If*sh_cmap*=1, then*sh_color*is interpreted as a cmap1 argument in the range (0.0-1.0). *sh_color*(**PLFLT**(3plplot), input)- Defines color map index with integer value if cmap0 or value in range (0.0-1.0) if cmap1.
*sh_width*(**PLFLT**(3plplot), input)- Defines width used by the fill pattern.
*min_color*(**PLINT**(3plplot), input)- Defines pen color, width used by the boundary of shaded region. The min values are used for the shade_min boundary, and the max values are used on the shade_max boundary. Set color and width to zero for no plotted boundaries.
*min_width*(**PLFLT**(3plplot), input)- Defines pen color, width used by the boundary of shaded region. The min values are used for the shade_min boundary, and the max values are used on the shade_max boundary. Set color and width to zero for no plotted boundaries.
*max_color*(**PLINT**(3plplot), input)- Defines pen color, width used by the boundary of shaded region. The min values are used for the shade_min boundary, and the max values are used on the shade_max boundary. Set color and width to zero for no plotted boundaries.
*max_width*(**PLFLT**(3plplot), input)*fill*(**PLFILL_callback**(3plplot), input)- Routine used to fill the region. Use
**plfill**(3plplot). Future version of PLplot may have other fill routines. *rectangular*(**PLBOOL**(3plplot), input)- Set
*rectangular*to true if rectangles map to rectangles after coordinate transformation with*pltrl*. Otherwise, set*rectangular*to false. If*rectangular*is set to true, plshade tries to save time by filling large rectangles. This optimization fails if the coordinate transformation distorts the shape of rectangles. For example a plot in polar coordinates has to have*rectangular*set to false. *pltr*(**PLTRANSFORM_callback**(3plplot), input)- A callback function that defines the transformation between the zero-based
indices of the matrix
*a*and world coordinates. If*pltr*is not supplied (e.g., is set to NULL in the C case), then the x indices of*a*are mapped to the range*xmin*through*xmax*and the y indices of*a*are mapped to the range*ymin*through*ymax*.For the C case, transformation functions are provided in the PLplot library:**pltr0**(3plplot) for the identity mapping, and**pltr1**(3plplot) and**pltr2**(3plplot) for arbitrary mappings respectively defined by vectors and matrices. In addition, C callback routines for the transformation can be supplied by the user such as the mypltr function in examples/c/x09c.c which provides a general linear transformation between index coordinates and world coordinates.For languages other than C you should consult the PLplot documentation for the details concerning how**PLTRANSFORM_callback**(3plplot) arguments are interfaced. However, in general, a particular pattern of callback-associated arguments such as a tr vector with 6 elements; xg and yg vectors; or xg and yg matrices are respectively interfaced to a linear-transformation routine similar to the above mypltr function;**pltr1**(3plplot); and**pltr2**(3plplot). Furthermore, some of our more sophisticated bindings (see, e.g., the PLplot documentation) support native language callbacks for handling index to world-coordinate transformations. Examples of these various approaches are given in examples/<language>x09*, examples/<language>x16*, examples/<language>x20*, examples/<language>x21*, and examples/<language>x22*, for all our supported languages. *pltr_data*(**PLPointer**(3plplot), input)- Extra parameter to help pass information to
**pltr0**(3plplot),**pltr1**(3plplot),**pltr2**(3plplot), or whatever routine that is externally supplied.

# AUTHORS¶

Many developers (who are credited at http://plplot.org/credits.php) have contributed to PLplot over its long history.

# SEE ALSO¶

PLplot documentation at http://plplot.org/documentation.php.

June, 2019 |