[doc] misc. patchs & small improvements
[scilab.git] / scilab / modules / graphics / help / en_US / color_management / colorbar.xml
1 <?xml version="1.0" encoding="UTF-8"?>
2 <!--
3  * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
4  * Copyright (C) 2019 - Samuel GOUGEON
5  *
6  * This file is hereby licensed under the terms of the GNU GPL v2.0,
7  * pursuant to article 5.3.4 of the CeCILL v.2.1.
8  * This file was originally licensed under the terms of the CeCILL v2.1,
9  * and continues to be available under such terms.
10  * For more information, see the COPYING file which you should have received
11  * along with this program.
12  *
13  -->
14 <refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink"
15           xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML"
16           xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org"
17           xml:lang="en" xml:id="colorbar">
18     <refnamediv>
19         <refname>colorbar</refname>
20         <refpurpose>draws a vertical color bar</refpurpose>
21     </refnamediv>
22     <refsynopsisdiv>
23         <title>Syntax</title>
24         <synopsis>
25             colorbar
26             colorbar(umin, umax)
27             colorbar(umin, umax, colminmax)
28             colorbar(umin, umax, -1)
29             colorbar( , , [fmin fmax])
30             colorbar(.., Cformat)
31         </synopsis>
32     </refsynopsisdiv>
33     <refsection role="parameters">
34         <title>Arguments</title>
35         <para>
36             <itemizedlist>
37                 <listitem>
38                     Let U be the Z values of the plot for which a colorbar scale is needed, %inf, -%inf and %nan values being ignored.
39                 </listitem>
40                 <listitem>
41                     Let minU and maxU be the minimum and the maximum of U values.
42                 </listitem>
43                 <listitem>
44                     Let Nc be the Number of colors in the current color map:
45                     <literal>Nc = size(gcf().color_map,1)</literal>.
46                 </listitem>
47             </itemizedlist>
48         </para>
49         <variablelist>
50             <varlistentry>
51                 <term>umin</term>
52                 <listitem>
53                     <para>
54                         U's lowest data value covered by the colorbar.
55                     </para>
56                     <para>
57                         Using <literal>-%inf</literal> sets <literal>umin = min(U)</literal>.
58                     </para>
59                     <para>
60                         When underlaying plotted data exist in the current axes,
61                         <literal>umin</literal> may be skipped -- using colorbar(,..) --
62                         in order to extract and implicitly use min(U).
63                     </para>
64                 </listitem>
65             </varlistentry>
66             <varlistentry>
67                 <term>umax</term>
68                 <listitem>
69                     <para>
70                         U's biggest data value covered by the colorbar.
71                     </para>
72                     <para>
73                         Using <literal>%inf</literal> sets <literal>umax = max(U)</literal>.
74                     </para>
75                     <para>
76                         When underlaying plotted data exist in the current axes,
77                         <literal>umax</literal> may be skipped -- using colorbar(.., ,..) --
78                         in order to extract and implicitly use max(U).
79                     </para>
80                 </listitem>
81             </varlistentry>
82             <varlistentry>
83                 <term>colminmax</term>
84                 <listitem>
85                     <para>
86                         <literal>colminmax</literal> aims to provide the range of colors
87                         that will be spanned on the colorbar, and that will correspond
88                         to the data bounds provided through <literal>umin</literal> and
89                         <literal>umax</literal>.
90                     </para>
91                     <para>
92                         It is an implicit or explicit vector
93                         <literal>[colmin, colmax]</literal>
94                         being indices of bounding colors. The color of index
95                         <literal>colmin</literal> in the current colormap will
96                         represent the <literal>umin</literal> data value. Similarly,
97                         the color of index <literal>colmax</literal> will represent
98                         <literal>umax</literal>, with
99                         <literal>1 &lt; colmin &lt; colmax &lt; Nc</literal>.
100                     </para>
101                     <para>Default setting: <literal>[1,Nc]</literal></para>
102                     <para>
103                         Fractional bounds may also be specified, as well as using the special
104                         value <literal>colminmax=-1</literal>. Please see the description
105                         section for more details.
106                     </para>
107                 </listitem>
108             </varlistentry>
109             <varlistentry>
110                 <term>Cformat</term>
111                 <listitem>
112                     <para>
113                         word providing a C-format formatting the display of graduated values
114                         along the colorbar. The formatting syntaxes are described in the
115                         <link linkend="printf_conversion">printf_conversion</link> page.
116                     </para>
117                 </listitem>
118             </varlistentry>
119         </variablelist>
120     </refsection>
121     <refsection>
122         <title>Description</title>
123         <para>
124             <literal>colorbar(…)</literal> draws a vertical color bar on the right side of
125             the current axes. The width of the targetted axes is priorly narrowed by 15%.
126             The freed room is used for the color bar, that is made of its own axes.
127         </para>
128         <para>
129             <literal>umin</literal> and <literal>umax</literal> set the data bounds scaling
130             the color bar at its bottom and top.
131         </para>
132         <para>
133             <literal>colminmax</literal> set the color range mapping the
134             <literal>[umin,umax]</literal> range, and used to fill the color bar.
135         </para>
136         <para>
137             When the current axes embeds an object of graphical type among
138             {"Matplot" "Fec" "Fac3d" "Plot3d" "Grayplot"} and its related U data,
139             it is possible to skip <literal>umin</literal> or/and <literal>umax</literal> values.
140             <literal>min(U)</literal> or/and <literal>max(U)</literal> are then retrieved
141             from data and used to set the color bar. For a "Matplot" object, the case
142             .image_type=="index" is specifically processed.
143         </para>
144         <note>
145             Just after calling <literal>colorbar(…)</literal>,
146             <literal>colbar = gcf().children(1)</literal> as well as
147             <literal>gce().parent</literal> return the graphical handle of the color bar.
148         </note>
149         <para>
150             The possible syntaxes are the following:
151         </para>
152         <para><emphasis role="bold">colorbar()</emphasis></para>
153         <para>
154             sets umin=minU and umax=maxU.
155             <itemizedlist>
156                 <listitem>
157                     For a Matplot.image_type="index", sets colminmax = [minU maxU].
158                 </listitem>
159                 <listitem>
160                     Otherwise, sets colminmax = [1 Nc]
161                 </listitem>
162             </itemizedlist>
163         </para>
164         <para><emphasis role="bold">colorbar(umin, umax, , Format)</emphasis></para>
165         <para>
166             sets <literal>colminmax=[1, Nc]</literal>.
167         </para>
168         <para><emphasis role="bold">colorbar(umin, umax, -1)</emphasis></para>
169         <para>
170             sets <literal>colmin</literal> and <literal>colmax</literal>
171             such that "[colmin,colmax]/[1,Nc]" maps the "[umin,umax]/[minU,maxU]"
172             "ratio".
173         </para>
174         <para><emphasis role="bold">colorbar(,, [colmin colmax])</emphasis></para>
175         <para>
176             with integers such that <literal>1 colmin &lt; colmax Nc</literal>.
177             Conversely to the previous one, this syntax sets
178             <literal>umin</literal> and <literal>umax</literal>
179             such that "[umin,umax]/[minU,maxU]" maps "[colmin,colmax]/[1,Nc]"
180             ratio.
181         </para>
182         <para><emphasis role="bold">colorbar(,, [fmin fmax])</emphasis></para>
183         <para>
184             The previous syntax <literal>colorbar(,,[colmin colmax])</literal> needs to know the colormap range to specify <literal>colmin</literal>
185             and <literal>colmax</literal> conveniently. This is not very
186             handy when we just want to target a fractional part of the colormap
187             whatever is its actual length. <literal>fmin</literal> and
188             <literal>fmax</literal> with <literal>0 ≤ fmin &lt; fmax ≤ 1</literal>
189             allow such a more robust specification.
190         </para>
191         <para>
192             This syntax sets
193             <itemizedlist>
194                 <listitem>
195                     <literal>umin</literal> and <literal>umax</literal> such that the relative range "[umin umax]/[min(U) max(U]" maps "[fmin, fmax]".
196                 </listitem>
197                 <listitem>
198                     <literal>[colmin colmax]</literal> such that the relative range
199                     "[colmin,colmax]/[1,Nc]" maps <literal>[fmin,fmax]</literal>.
200                 </listitem>
201             </itemizedlist>
202         </para>
203         <para><emphasis role="bold">colorbar(-%inf, %inf, ..)</emphasis></para>
204         <para>
205             sets umin = minU, umax = maxU. Each one may be set to the U bound independently.
206         </para>
207     </refsection>
208     <refsection>
209         <title>Examples</title>
210         <refsect3>
211             <title>Example #1</title>
212             without underlaying U data :
213             Direct umin and umax specifications. General colorbar() behavior.
214         <programlisting role="example"><![CDATA[
215 clf reset                           // clears and resets the figure
216 gcf().color_map = jetcolormap(100); // sets its color map
217 subplot(1,2,2), plotframe([0 0 1 1])// fake axes on the right
218 subplot(1,2,1)                      // Now the default current axes
219 ax0 = gca();                        //  is on the half left
220 ax0.axes_bounds(3)  //  Here is its initial width
221
222 // The axes is clear. There is no plotted data.
223 // We explicitely create a colorbar from scratch:
224 colorbar(-2, 8, [1 100])    // It is inserted on the right
225
226 // The current (empty) axes is still the same:
227 gca() == ax0
228
229 // But its width has been shrunk (by -15%) to set the
230 // colorbar on its right side.
231 gca().axes_bounds
232
233 // gce() returns the handle of the colored area, and
234 // gce().parent is the handle to the axes defining the color bar
235 colbar1 = gce().parent;
236 colbar1.type
237 colbar1 == gcf().children(1)  // Another way to retrieve the handle
238 // This handle allows to postprocess and customize the colorbar.
239 ylabel(colbar1, "Temperature [°C]") // Let's add a label
240 title("°C")                         // or as title
241 colbar1.title.font_size = 3;   // .. with a bigger font
242 // Beware: xlabel(), ylabel() title() moves the focus to the bar.
243 sca(ax0); // Reset the focus to ax0 before going on
244
245 // Now plot a frame in the empty axes:
246 plotframe([0 0 1 1])
247
248 // Then add some other color bars, still for the current axes
249 colorbar(-2, 5, [1 70])
250 // Set the labelsin magenta
251 gcf().children(1).font_color = color("red");
252
253 // The current axes is shrunk. The bar's width is decreased accordingly.
254
255 // A last one: top half of the colormap, with another data scale:
256 colorbar(0, 1.5, [0.5 1])  // colminmax = [fmin fmax]
257 // Let decrease its font size:
258 colbar3 = gcf().children(1);
259 set(colbar3, "fractional_font","on","font_size", 0.5);
260 // And vertically extend the bar, to match ax0's height
261 colbar3.axes_bounds([2 4]) = ax0.axes_bounds([2 4]);
262 colbar3.margins([3 4]) = ax0.margins([3 4]);
263
264 // Color bars are automatically redrawn and regraduated
265 // when resizing the figure. Try it!
266      ]]></programlisting>
267         <scilab:image>
268             clf reset                           // clears and resets the figure
269             gcf().color_map = jetcolormap(100); // sets its color map
270             gcf().figure_size = [730 420];
271             subplot(1,2,2), plotframe([0 0 1 1])// fake axes on the right
272             subplot(1,2,1)                      // Now the default current axes
273             ax0 = gca();                        //  is on the half left
274             ax0.axes_bounds(3)  //  Here is its initial width
275
276             // The axes is clear. There is no plotted data.
277             // We explicitely create a colorbar from scratch:
278             colorbar(-2, 8, [1 100])    // It is inserted on the right
279
280             // The current (empty) axes is still the same:
281             gca() == ax0
282
283             // But its width has been shrunk (by -15%) to set the
284             // colorbar on its right side.
285             gca().axes_bounds
286
287             // gce() returns the handle of the colored area, and
288             // gce().parent is the handle to the axes defining the color bar
289             colbar1 = gce().parent;
290             colbar1.type
291             colbar1 == gcf().children(1)  // Another way to retrieve the handle
292             // This handle allows to postprocess and customize the colorbar.
293             ylabel(colbar1, "Temperature [°C]") // Let's add a label
294             title("°C")                         // or as title
295             colbar1.title.font_size = 3;   // .. with a bigger font
296             // Beware: xlabel(), ylabel() title() moves the focus to the bar.
297             sca(ax0); // Reset the focus to ax0 before going on
298
299             // Now plot a frame in the empty axes:
300             plotframe([0 0 1 1])
301
302             // Then add some other color bars, still for the current axes
303             colorbar(-2, 5, [1 70])
304             // Set the labelsin magenta
305             gcf().children(1).font_color = color("red");
306
307             // The current axes is shrunk. The bar's width is decreased accordingly.
308
309             // A last one: top half of the colormap, with another data scale:
310             colorbar(0, 1.5, [0.5 1])  // colminmax = [fmin fmax]
311             // Let decrease its font size:
312             colbar3 = gcf().children(1);
313             set(colbar3, "fractional_font","on","font_size", 0.5);
314             // And vertically extend the bar, to match ax0's height
315             colbar3.axes_bounds([2 4]) = ax0.axes_bounds([2 4]);
316             colbar3.margins([3 4]) = ax0.margins([3 4]);
317
318             // Color bars are automatically redrawn and regraduated
319             // when resizing the figure. Try it!
320         </scilab:image>
321         <screen><![CDATA[
322 --> ax0.axes_bounds(3)  //  Here is its initial width
323  ans  =
324    0.5
325
326 --> ...
327 --> // The current (empty) axes is still the same:
328 --> gca() == ax0
329  ans  =
330   T
331
332 --> ...
333 --> // But its width has been shrunk (by -15%) ...
334 --> gca().axes_bounds
335  ans  =
336    0.   0.   0.425   1.
337
338 --> ...
339 --> // gce().parent is the handle to the axes defining the color bar
340 --> colbar1 = gce().parent;
341 --> colbar1.type
342  ans  =
343  Axes
344
345 --> colbar1 == gcf().children(1) // Another way to retrieve the handle
346  ans  =
347   T
348 ]]></screen>
349         </refsect3>
350         <!--===================================================-->
351         <refsect3>
352             <title>Example #2 : Matplot</title>
353             <para>
354                 <emphasis role="bold">After Matplot()</emphasis> here used with the default colormap.
355             </para>
356             <programlisting role="example"><![CDATA[
357 clf reset   // Default colormap used
358 // 1) Matplot: implicit minU, maxU, colminmax = [umin umax]
359 subplot(2,2,1)
360 Matplot([1 2 3; 4 5 7]);
361 colorbar   // [1 7] graduations covered by colors #[1 7].
362            // Ticks on middles of colored blocks
363
364 // 2) Matplot: Default colminmax = [1 Nc]
365 subplot(2,2,2)
366 Matplot([1 2 3;4 5 7]);
367 colorbar(1,7)   // [1 7] covered with the whole colormap.
368                 // "1" at the very bottom. "7" at the very top.
369
370 // 3) Matplot: another colors range, with explicit colminmax
371 subplot(2,2,3)
372 Matplot([1 2 3;4 5 7])
373 colorbar(3,7, [3 7])
374 // Ticks 2.5-7.5 expected:
375 //  - integer values ticked at the middle of colors blocks
376 //  - other .5 values ticked at the blocks separations
377             ]]></programlisting>
378             <scilab:image>
379 clf reset   // Default colormap used
380 gcf().axes_size = [770 620];
381 // 1) Matplot: implicit minU, maxU, colminmax = [umin umax]
382 subplot(2,2,1)
383 Matplot([1 2 3; 4 5 7]);
384 colorbar   // [1 7] graduations covered by colors #[1 7].
385            // Ticks on middles of colored blocks
386
387 // 2) Matplot: Default colminmax = [1 Nc]
388 subplot(2,2,2)
389 Matplot([1 2 3;4 5 7]);
390 colorbar(1,7)   // [1 7] covered with the whole colormap.
391                 // "1" at the very bottom. "7" at the very top.
392
393 // 3) Matplot: another colors range, with explicit colminmax
394 subplot(2,2,3)
395 Matplot([1 2 3;4 5 7])
396 colorbar(3,7, [3 7])
397 // Ticks 2.5-7.5 expected:
398 //  - integer values ticked at the middle of colors blocks
399 //  - other .5 values ticked at the blocks separations
400             </scilab:image>
401         </refsect3>
402         <!--===================================================-->
403         <refsect3>
404             <title>Example #3: After Sgrayplot()</title>
405             <para>
406                 U data are available from the underlaying Fec object.
407                 Then <literal>umin</literal> and <literal>umax</literal> may be implicit.
408                 Here we use a small number of colors, showing that a given [umin umax] data
409                 range (here implicitly [-1, 1], is exactly covered by chosen colors.
410             </para>
411             <programlisting role="example"><![CDATA[
412 x = linspace(0,1,81);
413 z = cos(2*%pi*x)'*sin(2*%pi*x);
414 n = 10;
415 clf
416 gcf().color_map = jetcolormap(n);
417 Sgrayplot(x, x, z);
418 contour(x,x,z,[-0.8 -0.6 -0.4 -0.2 0 0.2 0.4 0.6 0.8]);
419 gce().children.children(1:2:$-1).foreground=-1; // contours in black
420
421 colorbar
422 // Default umin = minU, umax = maxU, colminmax = [1 Nc]
423 // * "-1" tick at the very bottom of the scale
424 // * "1" tick at the very top
425 // * Nice subticks, at blocks middles & blocks limits
426 // * The contours levels must be at the right levels on the color bar
427             ]]></programlisting>
428             <scilab:image>
429 x = linspace(0,1,81);
430 z = cos(2*%pi*x)'*sin(2*%pi*x);
431 n = 10;
432 clf
433 gcf().color_map = jetcolormap(n);
434 Sgrayplot(x, x, z);
435 contour(x,x,z,[-0.8 -0.6 -0.4 -0.2 0 0.2 0.4 0.6 0.8]);
436 gce().children.children(1:2:$-1).foreground=-1; // contours in black
437 colorbar
438 gcf().axes_size = [760 450];
439             </scilab:image>
440             <para>
441                 <emphasis role="bold">Partial colors range: 8 colors used over 20</emphasis>:
442             </para>
443             <programlisting role="example"><![CDATA[
444 x = linspace(0,1,81);
445 z = cos(2*%pi*x)'*sin(2*%pi*x);
446 n = 8;
447 clf reset
448 gcf().color_map = jetcolormap(20);
449 gcf().axes_size = [770 320];
450
451 // 3.2) umin=minU and umax=maxU, covered by a subrange of colors
452 subplot(1,2,1)
453 Sgrayplot(x, x, z,colminmax=[3 n+2]);
454 contour(x,x,z,[-0.75 -0.5 -0.25 0 0.25 0.5 0.75]);
455 colorbar(-%inf,%inf,[3 n+2]);
456 // * The contours levels must be at the right levels on the color bar
457
458 // 3.3) Explicit umin and umax, with saturation for z values out of [umin, umax]:
459 subplot(1,2,2)
460 Sgrayplot(x, x, z, zminmax = [-0.6 0.8], colminmax = [5 11]);
461 contour(x,x,z,[-0.6 -0.4 -0.2 0.2 0.4 0.6]);
462 colorbar(-0.6, 0.8,[5 11]);
463             ]]></programlisting>
464             <scilab:image><![CDATA[
465 x = linspace(0,1,81);
466 z = cos(2*%pi*x)'*sin(2*%pi*x);
467 n = 8;
468 clf reset
469 gcf().color_map = jetcolormap(20);
470 gcf().axes_size = [770 320];
471
472 // 3.2) umin=minU and umax=maxU, covered by a subrange of colors
473 subplot(1,2,1)
474 Sgrayplot(x, x, z,colminmax=[3 n+2]);
475 contour(x,x,z,[-0.75 -0.5 -0.25 0 0.25 0.5 0.75]);
476 colorbar(-%inf,%inf,[3 n+2]);
477 // * The contours levels must be at the right levels on the color bar
478
479 // 3.3) Explicit umin and umax, with saturation for z values out of [umin, umax]:
480 subplot(1,2,2)
481 Sgrayplot(x, x, z, zminmax = [-0.6 0.8], colminmax = [5 11]);
482 contour(x,x,z,[-0.6 -0.4 -0.2 0.2 0.4 0.6]);
483 colorbar(-0.6, 0.8,[5 11]);
484             ]]></scilab:image>
485         </refsect3>
486         <!--===================================================-->
487         <refsect3>
488             <title>Example #4: for a Fac3d object</title>
489             <para> After plot3d1() or surf():
490             <programlisting role="example"><![CDATA[
491 function [zz, zz1] = plotSphere()
492     r = 0.3;
493     orig = [1.5 0 0];
494     deff("[x,y,z]=sph(alp,tet)",["x=r*cos(alp).*cos(tet)+orig(1)*ones(tet)";..
495          "y=r*cos(alp).*sin(tet)+orig(2)*ones(tet)";..
496          "z=r*sin(alp)+orig(3)*ones(tet)"]);
497     [xx,yy,zz] = eval3dp(sph,linspace(-%pi/2,%pi/2,40),linspace(0,%pi*2,20));
498     [xx1,yy1,zz1] = eval3dp(sph,linspace(-%pi/2,%pi/2,40),linspace(0,%pi*2,20));
499     cc  = (xx+zz+2)*32;
500     cc1 = (xx1-orig(1)+zz1/r+2)*32;
501     plot3d1([xx xx1],[yy yy1],list([zz,zz1],[cc cc1]),theta=70,alpha=80,flag=[5,6,3])
502 endfunction
503
504 clf reset
505 gcf().color_map = jetcolormap(120);  // 120 colors available
506 gcf().axes_size = [670, 560];
507
508 // For these 4 plots of a sphere of radius 0.3,
509 //  the color-value relationship is the same.
510
511 // 3.0) Implicit min(u), max(u), on the whole color map
512 subplot(2,2,1)
513 plotSphere();
514 colorbar;               // graduations on [-0.3 0.3]
515
516 // 3.1) Selection of a data range. Color range set accordingly
517 subplot(2,2,2)
518 plotSphere();
519 colorbar(0.0, 0.15, -1);// graduations on [0, 0.15]
520
521 // 3.2) Selection of a colormap interval. umin & umax set accordingly
522 subplot(2,2,3)
523 plotSphere();
524 colorbar(,,[60 120]);  // graduations on [0, 0.3]
525
526 // 3.3) Selection of a colormap relative part. umin & umax set accordingly
527 subplot(2,2,4)
528 plotSphere();
529 colorbar(,,[0 0.5]);  // graduations on [-0.3, 0]
530             ]]></programlisting>
531             <scilab:image><![CDATA[
532 function [zz, zz1] = plotSphere()
533     r = 0.3;
534     orig = [1.5 0 0];
535     deff("[x,y,z]=sph(alp,tet)",["x=r*cos(alp).*cos(tet)+orig(1)*ones(tet)";..
536          "y=r*cos(alp).*sin(tet)+orig(2)*ones(tet)";..
537          "z=r*sin(alp)+orig(3)*ones(tet)"]);
538     [xx,yy,zz] = eval3dp(sph,linspace(-%pi/2,%pi/2,40),linspace(0,%pi*2,20));
539     [xx1,yy1,zz1] = eval3dp(sph,linspace(-%pi/2,%pi/2,40),linspace(0,%pi*2,20));
540     cc  = (xx+zz+2)*32;
541     cc1 = (xx1-orig(1)+zz1/r+2)*32;
542     plot3d1([xx xx1],[yy yy1],list([zz,zz1],[cc cc1]),theta=70,alpha=80,flag=[5,6,3])
543 endfunction
544
545 clf reset
546 gcf().color_map = jetcolormap(100);  // 100 colors available
547 gcf().axes_size = [670, 560];
548
549 // For these 4 plots of a sphere of radius 0.3,
550 //  the color-value relationship is the same.
551
552 // 3.0) Implicit min(u), max(u), on the whole color map
553 subplot(2,2,1)
554 plotSphere();
555 colorbar;               // graduations on [-0.3 0.3]
556
557 // 3.1) Selection of a data range. Color range set accordingly
558 subplot(2,2,2)
559 plotSphere();
560 colorbar(0.0, 0.15, -1);// graduations on [0, 0.15]
561
562 // 3.2) Selection of a colormap interval. umin & umax set accordingly
563 subplot(2,2,3)
564 plotSphere();
565 colorbar(,,[50 100]);  // graduations on [0, 0.3]
566
567 // 3.3) Selection of a colormap relative part. umin & umax set accordingly
568 subplot(2,2,4)
569 plotSphere();
570 colorbar(,,[0 0.5]);  // graduations on [-0.3, 0]
571             ]]></scilab:image>
572             </para>
573         </refsect3>
574         <refsect3>
575             <title>Example #5 : Plot3d object</title>
576             <para> After plot3d() or surf():</para>
577             <para>
578                 <programlisting role="example"><![CDATA[
579 function plotSample()
580     t=[-4:0.1:4];
581     plot3d(t,t,sin(t)'*cos(t));
582     e = gce();
583     e.color_flag = 1;
584     e.color_mode = -2;
585 endfunction
586
587 clf
588 gcf().color_map = rainbowcolormap(200);
589 gcf().axes_size = [800 300];
590
591 // 5.1) Bar graduated from minU=-1 to maxU=1 with the full colormap
592 subplot(1,2,1)
593 plotSample();
594 colorbar;
595
596 // 5.2) Consistent U/colors fractional selection (top 40%)
597 subplot(1,2,2)
598 plotSample();
599 colorbar(,,[0.6 1]);
600
601 gcf().children([2 4]).rotation_angles = [55 45];
602                 ]]></programlisting>
603             <scilab:image><![CDATA[
604 function plotSample()
605     t=[-4:0.1:4];
606     plot3d(t,t,sin(t)'*cos(t));
607     e = gce();
608     e.color_flag = 1;
609     e.color_mode = -2;
610 endfunction
611
612 clf
613 gcf().color_map = rainbowcolormap(200);
614 gcf().axes_size = [800 300];
615
616 // 5.1) Bar graduated from minU=-1 to maxU=1 with the full colormap
617 subplot(1,2,1)
618 plotSample();
619 colorbar;
620
621 // 5.2) Consistent U/colors fractional selection
622 subplot(1,2,2)
623 plotSample();
624 colorbar(,,[0.6 1]);
625
626 gcf().children([2 4]).rotation_angles = [55 45];
627             ]]></scilab:image>
628             </para>
629         </refsect3>
630         <refsect3>
631             <title>Example #6: Demo</title>
632             <para>
633                 <programlisting role="example">
634 exec("SCI/modules/graphics/demos/colormap/colormaps.dem.sce",-1)
635                 </programlisting>
636             </para>
637         </refsect3>
638     </refsection>
639     <refsection role="see also">
640         <title>See also</title>
641         <simplelist type="inline">
642             <member>
643                 <link linkend="colormap">colormap</link>
644             </member>
645             <member>
646                 <link linkend="Matplot">Matplot</link>
647             </member>
648             <member>
649                 <link linkend="Sgrayplot">Sgrayplot</link>
650             </member>
651             <member>
652                 <link linkend="surf">surf</link>
653             </member>
654             <member>
655                 <link linkend="printf_conversion">Cformat rules</link>
656             </member>
657         </simplelist>
658     </refsection>
659     <refsection role="history">
660         <title>History</title>
661         <revhistory>
662             <revision>
663                 <revnumber>6.0.2</revnumber>
664                 <revdescription>
665                     <itemizedlist>
666                         <listitem>
667                             colorbar() syntax added.
668                         </listitem>
669                         <listitem>
670                             implicit umin or/and umax values can now be infered either from actual
671                             U data values, or from colminmax and the colormap size.
672                         </listitem>
673                         <listitem>
674                             colminmax bounds can now be specified as fractions of the colormap size.
675                         </listitem>
676                         <listitem>
677                             umin=-%inf and umax=%inf semantics are now available.
678                         </listitem>
679                     </itemizedlist>
680                 </revdescription>
681             </revision>
682         </revhistory>
683     </refsection>
684 </refentry>