Mercurial > hg > octave-lyh
changeset 14271:e2a14d1b4eaa
rgbplot.m: Add new Matlab compatible function for plotting colormaps
* NEWS: Add section for 3.8 release and list of new functions.
* image.txi: Add rgbplot to documentation.
* scripts/image/module.mk: Add rgbplot to build system.
* rgbplot.m: Added new function.
author | Rik <octave@nomad.inbox5.com> |
---|---|
date | Fri, 27 Jan 2012 19:09:02 -0800 |
parents | 527ed2a51d54 |
children | 4f8d2931f886 |
files | NEWS doc/interpreter/image.txi scripts/image/module.mk scripts/image/rgbplot.m |
diffstat | 4 files changed, 90 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/NEWS +++ b/NEWS @@ -1,3 +1,27 @@ +Summary of important user-visible changes for version 3.8: +--------------------------------------------------------- + + ** Other new functions added in 3.8.0: + + rgbplot + + ** Deprecated functions. + + The following functions were deprecated in Octave 3.4 and have been + removed from Octave 3.8. + + autocor dispatch is_global saveimage + autocov fstat krylovb strerror + betai gammai perror strerror + cellidx glpkmex perror values + cquad is_duplicate_entry replot + + The following functions have been deprecated in Octave 3.8 and will + be removed from Octave 3.12 (or whatever version is the second major + release after 3.8): + + + Summary of important user-visible changes for version 3.6: ---------------------------------------------------------
--- a/doc/interpreter/image.txi +++ b/doc/interpreter/image.txi @@ -127,6 +127,8 @@ @DOCSTRING(colormap) +@DOCSTRING(rgbplot) + @DOCSTRING(autumn) @DOCSTRING(bone) @@ -166,9 +168,9 @@ An additional colormap is @code{gmap40}. This code map contains only colors with integer values of the red, green and blue components. This is a workaround for a limitation of gnuplot 4.0, that does not allow the color -of line or patch objects to be set, and so @code{gmap40} is useful for gnuplot -4.0 users, and in particular in conjunction with the @var{bar}, -@var{barh} or @var{contour} functions. +of line or patch objects to be set. @code{gmap40} is chiefly useful to gnuplot +4.0 users, and particularly in conjunction with the @var{bar}, @var{surf}, +and @var{contour} functions. @DOCSTRING(gmap40)
--- a/scripts/image/module.mk +++ b/scripts/image/module.mk @@ -32,6 +32,7 @@ image/rgb2hsv.m \ image/rgb2ind.m \ image/rgb2ntsc.m \ + image/rgbplot.m \ image/spinmap.m \ image/spring.m \ image/summer.m \
new file mode 100644 --- /dev/null +++ b/scripts/image/rgbplot.m @@ -0,0 +1,60 @@ +## Copyright (C) 2012 Rik Wehbring +## +## This file is part of Octave. +## +## Octave is free software; you can redistribute it and/or modify it +## under the terms of the GNU General Public License as published by +## the Free Software Foundation; either version 3 of the License, or (at +## your option) any later version. +## +## Octave is distributed in the hope that it will be useful, but +## WITHOUT ANY WARRANTY; without even the implied warranty of +## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +## General Public License for more details. +## +## You should have received a copy of the GNU General Public License +## along with Octave; see the file COPYING. If not, see +## <http://www.gnu.org/licenses/>. + +## -*- texinfo -*- +## @deftypefn {Function File} {} rgbplot (@var{cmap}) +## Plot the components of a colormap. +## +## The first column is plotted in red, the second column in green, and +## the third column in blue. The values are between 0 and 1 and represent +## the intensity of the RGB components in the given indexed color. +## @seealso{colormap} +## @end deftypefn + +function rgbplot (cmap) + + if (nargin != 1) + print_usage (); + endif + + if (! ismatrix (cmap) || ndims (cmap) != 2 || columns (cmap) != 3) + error ("rgbplot: CMAP must be a matrix of size Nx3"); + elseif (any (cmap(:) < 0) || any (cmap(:) > 1)) + error ("rgbplot: CMAP intensities must be in the range [0, 1]"); + endif + + plot (cmap(:,1),"r", cmap(:,2),"g", cmap(:,3),"b"); + set (gca, 'ytick', 0:0.1:1); + xlabel ("color index"); + +endfunction + + +%!demo +%! clf; +%! rgbplot (ocean); + +%%test input validation +%!error rgbplot () +%!error rgbplot (1,2) +%!error <CMAP must be a matrix of size Nx3> rgbplot ({0 1 0}) +%!error <CMAP must be a matrix of size Nx3> rgbplot (ones (3,3,3)) +%!error <CMAP must be a matrix of size Nx3> rgbplot (ones (3,4)) +%!error <CMAP intensities must be in the range> rgbplot ([0 0 -2]) +%!error <CMAP intensities must be in the range> rgbplot ([0 0 2]) +