Can I reorder the legend entries for gscatter

12 次查看(过去 30 天)
I am making a gscatter plot where the groups are depths. I want the depths to be in order from shallowest to deepest in the legend (in this case = S, 1T, 10B, 4B, 1B). Can I control that somehow? Right now the legend is just the default.
f2=figure(2)
gscatter(TA_est,TA_meas,strtrim(height))
hold on;
plot(alk,alk)
xlabel('LIAR TA','fontsize',16)
ylabel('Measured TA','fontsize',16)

回答(1 个)

dpb
dpb 2019-3-21
Yeah, just redo the legend manually with the handles in the desired ordered...
...
hGS=gscatter(TA_est,TA_meas,strtrim(height)); % save the GS line handles array
hLG=legend([hGS(...)],' S', '1T', '10B', '4B', '1B');
where [hGS(...)] represents the handles to the array of lines in the order of depth desired associated with the original order. You don't give the data so can't actually determine what that order would be.
  5 个评论
Heidi Hirsh
Heidi Hirsh 2019-3-24
So I did this:
hGS=gscatter(TA_est,TA_meas,strtrim(height));
idxOrderWanted = [1 5 3 2 4]
hLG=legend([hGS(idxOrderWanted)],'S', '1T', '10B', '4B', '1B');
BUT when I replotted the figure it looks like the data is now mislabeled. The points are all the same but the colors now match different IDs...

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 Legend 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by