1 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
2 // Copyright (C) 2008 - INRIA - Pierre MARECHAL
3 // Copyright (C) 2010 - DIGITEO - Allan CORNET
4 // Copyright (C) 2016 - Scilab Enterprises - Paul Bignier
6 // This file is released under the 3-clause BSD license. See COPYING-BSD.
11 function demo_colormap()
14 // =========================================================================
16 frame_w = 200; // Frame width
17 frame_h = 330; // Frame height
19 plot_w = 600; // Plot width
20 plot_h = 550; // Plot height
22 margin_x = 15; // Horizontal margin between each elements
23 margin_y = 15; // Vertical margin between each elements
25 defaultfont = "arial"; // Default Font
26 text_font_size = 12; // Text font size
29 // =========================================================================
31 axes_w = 3*margin_x + frame_w + plot_w; // axes width
32 axes_h = 2*margin_y + max(frame_h,plot_h); // axes height
34 fig_handle = figure( ...
35 "infobar_visible", "off", ...
36 "toolbar_visible", "off", ...
37 "toolbar", "none", ...
38 "default_axes", "on", ...
39 "layout", "gridbag", ...
42 "figure_position", [0 0], ...
43 "axes_size", [axes_w axes_h], ...
44 "figure_name", "Colormap");
46 c = createConstraints("gridbag", [2 1 1 1], [1 1], "vertical", "right");
47 // Create an empty panel on the right to occupy the 3/4 of the screen (figure plot)
48 empty_frame = uicontrol(fig_handle, "style", "frame","constraints", c);
50 c = createConstraints("gridbag", [1 1 1 5], [0.05 1], "both", "left", [0 0], [150 0]);
51 u = uicontrol(fig_handle, ...
53 "backgroundcolor", [1 1 1], ...
54 "layout", "border", ...
57 // Add top and bottom empty panels to pad the upcoming colormap panel
58 c = createConstraints("border", "top", [0 80]);
59 top = uicontrol(u, "style", "frame", "backgroundcolor", [1 1 1], "constraints", c);
60 c = createConstraints("border", "bottom", [0 80]);
61 bottom = uicontrol(u, "style", "frame", "backgroundcolor", [1 1 1], "constraints", c);
63 // Border for the colormap frame
64 b_f_colormap = createBorderFont("", 18);
65 b_l_colormap = createBorder("line", "navy", 2);
66 b_colormap = createBorder("titled", b_l_colormap, "Colormap", "center", "top", b_f_colormap, "navy");
68 colormap_frame = uicontrol(u, ...
70 "backgroundcolor", [1 1 1], ...
71 "border", b_colormap, ...
72 "layout", "gridbag", ...
73 "tag", "colormap_frame");
75 demo_viewCode("colormap.dem.sce");
77 fig_handle.color_map = jetcolormap(128);
80 // =========================================================================
82 // Radio buttons : Jet
84 c = createConstraints("gridbag", [1 1 1 1], [1 1], "both", "upper");
85 square_radio = uicontrol( ...
86 "parent" , colormap_frame, ...
87 "style" , "radiobutton", ...
89 "fontname" , defaultfont, ...
90 "fontunits" , "points", ...
91 "fontsize" , text_font_size, ...
93 "background" , [1 1 1], ...
94 "callback" , "demo_update_colormap", ...
95 "constraints" , c, ...
96 "tag" , "jetcolormap_radio");
98 // Radio buttons : Parula
100 c = createConstraints("gridbag", [1 2 1 1], [1 1], "both", "upper");
101 disk_radio = uicontrol( ...
102 "parent" , colormap_frame, ...
103 "style" , "radiobutton", ...
104 "string" , "Parula", ...
105 "fontname" , defaultfont, ...
106 "fontunits" , "points", ...
107 "fontsize" , text_font_size, ...
109 "background" , [1 1 1], ...
110 "callback" , "demo_update_colormap", ...
111 "constraints" , c, ...
112 "tag" , "parulacolormap_radio");
114 // Radio buttons : HSV
116 c = createConstraints("gridbag", [1 3 1 1], [1 1], "both", "upper");
117 disk_radio = uicontrol( ...
118 "parent" , colormap_frame, ...
119 "style" , "radiobutton", ...
120 "string" , "HSV", ...
121 "fontname" , defaultfont, ...
122 "fontunits" , "points", ...
123 "fontsize" , text_font_size, ...
125 "background" , [1 1 1], ...
126 "callback" , "demo_update_colormap", ...
127 "constraints" , c, ...
128 "tag" , "HSVcolormap_radio");
130 // Radio buttons : Hot
132 c = createConstraints("gridbag", [1 4 1 1], [1 1], "both", "upper");
133 disk_radio = uicontrol( ...
134 "parent" , colormap_frame, ...
135 "style" , "radiobutton", ...
136 "string" , "Hot", ...
137 "fontname" , defaultfont, ...
138 "fontunits" , "points", ...
139 "fontsize" , text_font_size, ...
141 "background" , [1 1 1], ...
142 "callback" , "demo_update_colormap", ...
143 "constraints" , c, ...
144 "tag" , "hotcolormap_radio");
146 // Radio buttons : Gray
148 c = createConstraints("gridbag", [1 5 1 1], [1 1], "both", "upper");
149 disk_radio = uicontrol( ...
150 "parent" , colormap_frame, ...
151 "style" , "radiobutton", ...
152 "string" , "Gray", ...
153 "fontname" , defaultfont, ...
154 "fontunits" , "points", ...
155 "fontsize" , text_font_size, ...
157 "background" , [1 1 1], ...
158 "callback" , "demo_update_colormap", ...
159 "constraints" , c, ...
160 "tag" , "graycolormap_radio");
162 // Radio buttons : Winter
164 c = createConstraints("gridbag", [1 6 1 1], [1 1], "both", "upper");
165 disk_radio = uicontrol( ...
166 "parent" , colormap_frame, ...
167 "style" , "radiobutton", ...
168 "string" , "Winter", ...
169 "fontname" , defaultfont, ...
170 "fontunits" , "points", ...
171 "fontsize" , text_font_size, ...
173 "background" , [1 1 1], ...
174 "callback" , "demo_update_colormap", ...
175 "constraints" , c, ...
176 "tag" , "wintercolormap_radio");
178 // Radio buttons : Spring
180 c = createConstraints("gridbag", [1 7 1 1], [1 1], "both", "upper");
181 disk_radio = uicontrol( ...
182 "parent" , colormap_frame, ...
183 "style" , "radiobutton", ...
184 "string" , "Spring", ...
185 "fontname" , defaultfont, ...
186 "fontunits" , "points", ...
187 "fontsize" , text_font_size, ...
189 "background" , [1 1 1], ...
190 "callback" , "demo_update_colormap", ...
191 "constraints" , c, ...
192 "tag" , "springcolormap_radio");
194 // Radio buttons : Summer
196 c = createConstraints("gridbag", [1 8 1 1], [1 1], "both", "upper");
197 disk_radio = uicontrol( ...
198 "parent" , colormap_frame, ...
199 "style" , "radiobutton", ...
200 "string" , "Summer", ...
201 "fontname" , defaultfont, ...
202 "fontunits" , "points", ...
203 "fontsize" , text_font_size, ...
205 "background" , [1 1 1], ...
206 "callback" , "demo_update_colormap", ...
207 "constraints" , c, ...
208 "tag" , "summercolormap_radio");
210 // Radio buttons : Autumn
212 c = createConstraints("gridbag", [1 9 1 1], [1 1], "both", "upper");
213 disk_radio = uicontrol( ...
214 "parent" , colormap_frame, ...
215 "style" , "radiobutton", ...
216 "string" , "Autumn", ...
217 "fontname" , defaultfont, ...
218 "fontunits" , "points", ...
219 "fontsize" , text_font_size, ...
221 "background" , [1 1 1], ...
222 "callback" , "demo_update_colormap", ...
223 "constraints" , c, ...
224 "tag" , "autumncolormap_radio");
226 // Radio buttons : Bone
228 c = createConstraints("gridbag", [1 10 1 1], [1 1], "both", "upper");
229 disk_radio = uicontrol( ...
230 "parent" , colormap_frame, ...
231 "style" , "radiobutton", ...
232 "string" , "Bone", ...
233 "fontname" , defaultfont, ...
234 "fontunits" , "points", ...
235 "fontsize" , text_font_size, ...
237 "background" , [1 1 1], ...
238 "callback" , "demo_update_colormap", ...
239 "constraints" , c, ...
240 "tag" , "bonecolormap_radio");
242 // Radio buttons : Copper
244 c = createConstraints("gridbag", [1 11 1 1], [1 1], "both", "upper");
245 disk_radio = uicontrol( ...
246 "parent" , colormap_frame, ...
247 "style" , "radiobutton", ...
248 "string" , "Copper", ...
249 "fontname" , defaultfont, ...
250 "fontunits" , "points", ...
251 "fontsize" , text_font_size, ...
253 "background" , [1 1 1], ...
254 "callback" , "demo_update_colormap", ...
255 "constraints" , c, ...
256 "tag" , "coppercolormap_radio");
258 // Radio buttons : Pink
260 c = createConstraints("gridbag", [1 12 1 1], [1 1], "both", "upper");
261 disk_radio = uicontrol( ...
262 "parent" , colormap_frame, ...
263 "style" , "radiobutton", ...
264 "string" , "Pink", ...
265 "fontname" , defaultfont, ...
266 "fontunits" , "points", ...
267 "fontsize" , text_font_size, ...
269 "background" , [1 1 1], ...
270 "callback" , "demo_update_colormap", ...
271 "constraints" , c, ...
272 "tag" , "pinkcolormap_radio");
274 // Radio buttons : Rainbow
276 c = createConstraints("gridbag", [1 13 1 1], [1 1], "both", "upper");
277 disk_radio = uicontrol( ...
278 "parent" , colormap_frame, ...
279 "style" , "radiobutton", ...
280 "string" , "Rainbow", ...
281 "fontname" , defaultfont, ...
282 "fontunits" , "points", ...
283 "fontsize" , text_font_size, ...
285 "background" , [1 1 1], ...
286 "callback" , "demo_update_colormap", ...
287 "constraints" , c, ...
288 "tag" , "rainbowcolormap_radio");
290 // Radio buttons : Ocean
292 c = createConstraints("gridbag", [1 14 1 1], [1 1], "both", "upper");
293 disk_radio = uicontrol( ...
294 "parent" , colormap_frame, ...
295 "style" , "radiobutton", ...
296 "string" , "Ocean", ...
297 "fontname" , defaultfont, ...
298 "fontunits" , "points", ...
299 "fontsize" , text_font_size, ...
301 "background" , [1 1 1], ...
302 "callback" , "demo_update_colormap", ...
303 "constraints" , c, ...
304 "tag" , "oceancolormap_radio");
306 // Radio buttons : White
308 c = createConstraints("gridbag", [1 15 1 1], [1 1], "both", "upper");
309 disk_radio = uicontrol( ...
310 "parent" , colormap_frame, ...
311 "style" , "radiobutton", ...
312 "string" , "White", ...
313 "fontname" , defaultfont, ...
314 "fontunits" , "points", ...
315 "fontsize" , text_font_size, ...
317 "background" , [1 1 1], ...
318 "callback" , "demo_update_colormap", ...
319 "constraints" , c, ...
320 "tag" , "whitecolormap_radio");
323 // =========================================================================
325 my_plot_axes = gca();
327 my_plot_axes.x_label.text = "";
328 my_plot_axes.y_label.text = "";
329 my_plot_axes.z_label.text = "";
330 my_plot_axes.title.text = "";
331 my_plot_axes.title.font_size = 5;
332 my_plot_axes.rotation_angles(1) = 80;
333 my_plot_axes.axes_bounds = [ ((2*margin_x+frame_w)/axes_w) 0 1-((2*margin_x+frame_w)/axes_w) 1];
338 f.color_map = jetcolormap(128);
340 // generate facet coordinates
341 x = %pi * [-1:0.05:1]';z = sin(x)*cos(x)';
342 [x,y,z] = genfac3d(x,x,z);
345 // colors depending on z, between 1 and colormap size
346 facetsColors = (z + 1) * (colormapSize - 1) / 2 + 1;
349 plot3d(x,y,list(z, facetsColors));
354 colorbar(z_min,z_max);
357 my_plot_axes.background = color(240,240,240);
361 my_plot_axes.rotation_angles(1) = 80;
363 fig_handle.visible = "on";
368 function demo_update_colormap()
371 my_plot_axes = gca();
373 my_figure.immediate_drawing = "off";
375 set(findobj("tag", "jetcolormap_radio") , "value", 0);
376 set(findobj("tag", "parulacolormap_radio") , "value", 0);
377 set(findobj("tag", "hotcolormap_radio") , "value", 0);
378 set(findobj("tag", "graycolormap_radio") , "value", 0);
379 set(findobj("tag", "wintercolormap_radio") , "value", 0);
380 set(findobj("tag", "springcolormap_radio") , "value", 0);
381 set(findobj("tag", "summercolormap_radio") , "value", 0);
382 set(findobj("tag", "autumncolormap_radio") , "value", 0);
383 set(findobj("tag", "bonecolormap_radio") , "value", 0);
384 set(findobj("tag", "coppercolormap_radio") , "value", 0);
385 set(findobj("tag", "pinkcolormap_radio") , "value", 0);
386 set(findobj("tag", "HSVcolormap_radio") , "value", 0);
387 set(findobj("tag", "rainbowcolormap_radio") , "value", 0);
388 set(findobj("tag", "oceancolormap_radio") , "value", 0);
389 set(findobj("tag", "whitecolormap_radio") , "value", 0);
391 set(gcbo, "value", 1);
393 my_wanted_colormap = get(gcbo,"tag");
395 if get(gcbo, "tag") == "jetcolormap_radio" then
396 my_figure.color_map = jetcolormap(128);
397 elseif get(gcbo, "tag") == "parulacolormap_radio" then
398 my_figure.color_map = parulacolormap(128);
399 elseif get(gcbo, "tag") == "hotcolormap_radio" then
400 my_figure.color_map = hotcolormap(128);
401 elseif get(gcbo, "tag") == "graycolormap_radio" then
402 my_figure.color_map = graycolormap(128);
403 elseif get(gcbo, "tag") == "wintercolormap_radio" then
404 my_figure.color_map = wintercolormap(128);
405 elseif get(gcbo, "tag") == "springcolormap_radio" then
406 my_figure.color_map = springcolormap(128);
407 elseif get(gcbo, "tag") == "summercolormap_radio" then
408 my_figure.color_map = summercolormap(128);
409 elseif get(gcbo, "tag") == "autumncolormap_radio" then
410 my_figure.color_map = autumncolormap(128);
411 elseif get(gcbo, "tag") == "bonecolormap_radio" then
412 my_figure.color_map = bonecolormap(128);
413 elseif get(gcbo, "tag") == "coppercolormap_radio" then
414 my_figure.color_map = coppercolormap(128);
415 elseif get(gcbo, "tag") == "pinkcolormap_radio" then
416 my_figure.color_map = pinkcolormap(128);
417 elseif get(gcbo, "tag") == "HSVcolormap_radio" then
418 my_figure.color_map = hsvcolormap(128);
419 elseif get(gcbo, "tag") == "rainbowcolormap_radio" then
420 my_figure.color_map = rainbowcolormap(128);
421 elseif get(gcbo, "tag") == "oceancolormap_radio" then
422 my_figure.color_map = oceancolormap(128);
423 elseif get(gcbo, "tag") == "whitecolormap_radio" then
424 my_figure.color_map = whitecolormap(128);
428 my_plot_axes.background = color(240,240,240);
430 my_figure.immediate_drawing = "on";