How to create a cyclic color palette

46 visualizaciones (últimos 30 días)
Guy Nir
Guy Nir el 4 de Abr. de 2024
Comentada: DGM el 4 de Abr. de 2024
How do I create a cyclic rainbow color palette?

Respuesta aceptada

Ayush Anand
Ayush Anand el 4 de Abr. de 2024
Hi,
You can use the "hsv" function to create a cyclic rainbow color palette, as the HSV color space is naturally cyclic with respect to hue.
% Number of colors you want in the palette
numColors = 256;
% Generate a cyclic rainbow color palette
rainbowPalette = hsv(numColors);
% Example: Use the palette for a plot
x = linspace(0, 2*pi, 1000);
y = sin(x);
scatter(x, y, 10, mod(1:1000, numColors)+1, 'filled');
colormap(rainbowPalette);
colorbar;
In this example, "hsv(numColors)" generates a "numColors x 3" matrix, where each row is an RGB color corresponding to a color in the HSV color wheel. The colors range from red, through all the hues of the rainbow, back to red, creating a cycle.
You can read more about the "hsv" function here: https://www.mathworks.com/help/matlab/ref/hsv.html
Hope this helps!
  4 comentarios
Guy Nir
Guy Nir el 4 de Abr. de 2024
I see. I think that ideally the function will take a map similiar to the one with 40 colors and rescale it with let's say, 20 colors, thus keeping the obvious cyclic nature of the map.
DGM
DGM el 4 de Abr. de 2024
If you want to always ensure that the ends are the same color regardless of the length of the map, you can just append that tuple.
ncolors = 9;
CT = hsv(ncolors);
CT = CT([1:end 1],:);
image(permute(CT,[1 3 2]))
set(gca,'ydir','normal')
... of course this makes anything you do with the map ambiguous, since the same color maps to two distinct values.
Despite casual appearances, it's also no longer cyclic, since it has a duplicate red element.
image(permute([CT;CT],[1 3 2]))
set(gca,'ydir','normal')
This is something that might be more justifiable with a really long colormap, but for a short discrete color table, I don't think it makes sense.

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Colormaps en Help Center y File Exchange.

Etiquetas

Productos


Versión

R2023b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by