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