# HG changeset patch # User Rik # Date 1327720142 28800 # Node ID e2a14d1b4eaa2dfccdc183f2d4525c7864330e98 # Parent 527ed2a51d5458a5d675e43fef7244988d491224 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. diff --git a/NEWS b/NEWS --- 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: --------------------------------------------------------- diff --git a/doc/interpreter/image.txi b/doc/interpreter/image.txi --- 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) diff --git a/scripts/image/module.mk b/scripts/image/module.mk --- 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 \ diff --git a/scripts/image/rgbplot.m b/scripts/image/rgbplot.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 +## . + +## -*- 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 rgbplot ({0 1 0}) +%!error rgbplot (ones (3,3,3)) +%!error rgbplot (ones (3,4)) +%!error rgbplot ([0 0 -2]) +%!error rgbplot ([0 0 2]) +