Label more than 7 lines in a plot
显示 更早的评论
Hi,
I am realizing that after 7 lines, Matlab seems to run out of colors for graphs and legends..is that correct? Currently I am plotting the following:
plot(matA);
legend('1.','2.','3.','4.','5.','6.','7.','8.');
xlabel('Timepoints');
ylabel('Sources');
matA is a 200x8 matrix, but after plotting I see that the lines 1 and 8 both have the same colors..what is the easiest way out?
Thanks
回答(2 个)
Renato Agurto
2016-9-29
Hi,
one solution is to plot in different lines styles:
hold on;
plot(matA(:,1:7), '-');
plot(matA(:,8:14), '--');
...
In your example
hold on;
plot(matA(:,1:7), '-');
plot(matA(:,8), '--');
or maybe:
hold on;
plot(matA(:,1:4), '-');
plot(matA(:,5:8), '--');
You can set your own colours for lines you plot and you can also specify the colours used on an axes by setting the
ColorOrder
property of an axes. By default this is a 7x3 array. You can extend it or replace it with any number of rows you want so long as it is nx3.
The legend doesn't run out of colours either, it just reflects the colours assigned to the plots so if they repeat then obviously so does it otherwise it would not be reflecting the curves correctly.
2 个评论
MiauMiau
2016-9-29
Adam
2016-9-29
It looks as though the plot function over-rides these so you have to set the default axes color order before plotting instead - e.g.
set(groot,'defaultAxesColorOrder', newColors)
doSomePlotting( )
If you want to return to the defaults after you can type:
set(groot,'defaultAxesColorOrder', 'default' )
类别
在 帮助中心 和 File Exchange 中查找有关 Creating, Deleting, and Querying Graphics Objects 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!
