MATLAB Answers


Want to create colors depending on the number of columns i got in my X

Asked by Tiago Dias on 26 Nov 2018
Latest activity Edited by Jan
on 27 Nov 2018
Accepted Answer by Jan
Hello, i want to plot each column, and i want to associate each column with a color but automaticly.
X = [1:26]';
Y = [1:26]';
[n,m] = size(X);
rows = 3;
columns = ceil(n/rows);
extra_row = columns * rows;
X(n+1:extra_row) = NaN;
X_new = reshape(X,rows,columns)
So, if i put a different numbe ron "ROWS" my "X_NEW" will have more or less columns.
Question -> How to create a vector of colors or string of colors depending on the number of columns of X_new?
Thanks for your time


Sign in to comment.


1 Answer

Answer by Jan
on 26 Nov 2018
 Accepted Answer

What about:
CMap = parula(rows)


As I have suggested already:
CMap = winter(10);
for k = 1:10
plot(1:10, rand(1,10), '*', 'Color', CMap(k, :));
hold on
There is no large difference in the 10 different colors of the winter color map, but at least the colors are not repeated.
oh ok. I place with a vector
plot(1:10, rand(1,10), '*', 'Color', [CMap(k,1) CMap(k,2) CMap(k,3)]);
CMap(k, :) is the abbreviation for CMap(k, 1:3), which is exactly the same as [CMap(k,1) CMap(k,2) CMap(k,3)], so I'd prefer the leaner notation.

Sign in to comment.