Can users pre-determine the legend location when utiliznig the gscatter function?

3 Ansichten (letzte 30 Tage)
I'm putting together an M-file where I include several group scatter plots. For unknown reasons, I'm unable to pre-determine the legend location (NorthEastOutside). I can determine the location after the plot is created by manually editing the figure properties.
Is this a limitation of the function?
  2 Kommentare
the cyclist
the cyclist am 27 Jun. 2013
Are you able to give a small example of what you mean?
Brad
Brad am 27 Jun. 2013
Cyclist, I was able to answer my own question.
Lets say we use the Mathworks example for the gscatter function:
load discrim; gscatter(ratings(:,1),ratings(:,2),group,'br','xo');
This yields the gscatter plot at the link above.
By issuing the following, I can now place the legend in the desired location.
>> legend('data1','data2','location','Northeastoutside')
However, the group IDs are not the same as before (1 and 2 versus data 1 and data 2). I was hoping to find a way where I could relocate the legend without losing the original group IDs. I can maintain the original IDs by placing the legend manually - using the edit figure properties.
Have you run into this before?

Melden Sie sich an, um zu kommentieren.

Akzeptierte Antwort

Brad
Brad am 1 Jul. 2013
The current answer is no.
Using the same example as above, the gscatter command will not allow the user to pre-position the legend. One workaround is to find the handle to the legend object and set the legend to the desired position.
load discrim figure, gscatter(ratings(:,1),ratings(:,2),group,'br','xo', [], 'on') % Find the handle to the legend object and set position l= findobj(gcf,'tag','legend'); set(l,'location','northeastoutside');
This answer provided by Amrita Anand (thanks).
  1 Kommentar
Óscar Miranda Domínguez
Óscar Miranda Domínguez am 3 Mär. 2015
Bearbeitet: Óscar Miranda Domínguez am 3 Mär. 2015
It is easier to just silence the auto legend in gscatter by setting doleg as "off" Next, add the legend. Example:
gscatter(c2,c1,my_labels,my_color,'o+',[],'off');
legend(unique(char(my_labels),'rows'),'location','best')

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Community Treasure Hunt

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

Start Hunting!

Translated by