How can I set two different color for each lsline in the scatter plot?
10 ビュー (過去 30 日間)
古いコメントを表示
Hello,
I have one question about lsline.
Basically, I want to have two lsline(C and D), one for A and one for B respectively.
I would like to set different color for each lsline and also would like to make legend for each one.
So I wrote the code as below. However, it gives me the two blue lsline instead of one read and one blue.
So I was wondering how should I make the code to get the right figure.
Thanks in advance.
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/871500/image.png)
% Subplot
figure(6)
A = scatter(semi2008(h_to_plot),semi2001(h_to_plot),[],[0 0.4470 0.7410],'o','Linewidth',1);
hold on
C = lsline;
hold on
B = scatter(semi2008_zoomed(h_to_plot_zoomed),semi2001(h_to_plot_zoomed),[],[0.8500 0.3250 0.0980],'o','Linewidth',1);
hold on
D = lsline;
hold on
grid on
xlabel('2008')
ylabel('2001')
legend([A B C D],'scatter1','scatter2','line1','line2','Location','southeast')
set(C,'color','r')
set(D,'color','b')
0 件のコメント
採用された回答
Walter Roberson
2022 年 1 月 24 日
lsline creates a least squared line for each scatter plot in the axes.
At the time you call lsline the first time you have plotted only A so C reflects only A.
At the time you call lsline the second time, you have A and B plotted, and lsline creates lines for each of them, so D contains the handles for two lines.
When you put it all together you have a vector with five handles: one for A directly, one for B directly, one the first lsline for A, then one for the second lsline for A, then one for the lsline for B.
What you should do is get rid of the first lsline call, since the second lsline call generates lines for each of the scatter plots.
0 件のコメント
その他の回答 (0 件)
参考
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!