For all your color needs!
Jump to navigation
Jump to search
This is a simple script to create two PDFs showing the defined colors in the isisscripts. Some of them are created via generator functions and allow a great deal of customization. You really should consult the help.
require("tikz"); %% Plot all palettes with tikz define tikz_color_test (filename) { variable C = {}; % these are just collectors for nicer alignment variable V = {}; variable n,j=0; % loop through all maps and palettes foreach n ([png_get_colormap_names(), get_color_palette_names()]) { % this is the color interface access: We request a palette with name 'n' % and 10 colors. In case it is a static palette we only get the total % number of colors, the repeat qualifier ensures we get an array of % length 10, with repeated colors. variable pal = get_color_palette(n, qualifier("n", 10); repeat); % all returned palettes are generated with the default parameter settings % many can be customized for your needs! You really should check the % help entries. if (j == 30) { list_append(C, tikz_new_vbox_compound(__push_list(V))); V = {}; j = 0; } variable H = {}; variable i; _for i (0,qualifier("n", 10)-1) { % Put the colors in boxes together list_append(H, tikz_new_rectangle(0,0,1,1; fillcolor=sprintf("#%06x", pal[i]))); } % label it list_append(V, tikz_new_hbox_compound(tikz_new_text(0,0,strreplace(n,"_","\\_"); anchor="south east"), __push_list(H))); j++; } % to capture the remaining palettes if (length(V)>0) list_append(C, tikz_new_vbox_compound(__push_list(V))); % put everything together tikz_new_hbox_compound(__push_list(C), 4).render(filename); } define tikz_map_test (filename) { variable V = {}; % collectors again variable H = {}; variable n, map, i = 0; % and again loop over maps and palettes foreach n ([png_get_colormap_names(), get_color_palette_names()]) { if (i == 30) { list_append(H, tikz_new_vbox_compound(__push_list(V))); V = {}; i = 0; } % get a color map, this is different from 'png_get_colormap' as it allows % also a palette name (just a (small) number of colors) and interpolates between % them. Also has parameters, see the help. map = get_color_map(n); % to make it simple just plot some pictures variable p = tikz_plot_new(10, 1); p.axis(; off); p.plot_png(_reshape([0:255], [1, 256]); cmap=map, depth=200); p.plot([0,0,1,1,0], [0,1,1,0,0]; width=2, color="black", world0); list_append(V, tikz_new_hbox_compound(tikz_new_text(0,0,strreplace(n,"_", "\\_"); anchor="south east"), p; interleave)); i++; } if (length(V)>0) list_append(H, tikz_new_vbox_compound(__push_list(V))); % and puth everything together tikz_new_hbox_compound(__push_list(H), 4).render(filename); } % run both! tikz_color_test("palettes.pdf"); tikz_map_test("maps.pdf"); % and enjoy your creation :) exit();