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

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 Comments

Are you able to give a small example of what you mean?
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?

Sign in to comment.

 Accepted Answer

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 Comment

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')

Sign in to comment.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!