Plot different colors while using loops.
307 次查看(过去 30 天)
显示 更早的评论
I am making a program that plots a variable amount of inputs from a database. Suffice to say that I have a variable number of arrays that I need to plot on the same figure. I can get the variables to plot fine with a loop.
for i=1:n
plot(array1(:,i),array2(:,i),'o')
end
This plots i arrays where array1 holds the x values and array 2 holds the y values.
I was wondering if:
a: There is a way to change the colors, in other words, make each dataset show up with different colors.
b: make a legend that coorsponds to the colors. I would like to see which data goes with which plot. I can pull the names from an array...I mainly need some way to color the different plots differently.
4 个评论
Karam Haidar
2020-5-23
does this literally only work with the numbers 1 and 3? I had a similar problem and it spit out an error with every other combination I tried!
Stephen23
2020-5-23
"does this literally only work with the numbers 1 and 3?"
Yes, because RGB triples are defined as a vector of three values.
"I had a similar problem and it spit out an error with every other combination I tried!"
The documentation clearly explains what the valid inputs are for the 'color' option:
Reading the documentation is a much more efficient way to write code than just trying random changes.
采纳的回答
Matt Fig
2011-5-31
You can make a cell array of your chosen colors, then:
C = {'k','b','r','g','y',[.5 .6 .7],[.8 .2 .6]} % Cell array of colros.
x = 0:.01:1;
hold on
for ii=1:7
plot(x,x.^ii,'color',C{ii},'marker','o')
end
legend({'x.^1';'x.^2';'x.^3';'x.^4';'x.^5';'x.^6';'x.^7'})
With the legend command, the first string in the list corresponds to the first line plotted, etc. Another approach would be to use one of the MATLAB colormaps:
CM = jet(n); % See the help for COLORMAP to see other choices.
then:
for ii=1:n
plot(array1(:,ii),array2(:,ii),'color',CM(ii,:),'marker','o')
end
2 个评论
Minkush Kansal
2017-12-17
Thanks a lot! It works nicely :)
Could you please explain how does the definition of cell array of colors ( 1st line of code) work?
i.e. C = {'k','b','r','g','y',[.5 .6 .7],[.8 .2 .6]} --how does this work exactly?
更多回答(1 个)
Oleg Komarov
2011-5-31
you can simply, and it will automatically change the colors for each series:
plot(array1,array2,'o')
0 个评论
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Legend 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!