Property of gscatter information needed
Show older comments
Hi Team,
i am new to matlab and i know about the property of scatter as "XDATA, YDATA , ZDATA etc
question :
- could you please do help me out what is the 3rd property of gscatter ?
Regards,
Satya
Answers (2)
Have you read that?
you don't have to mention a 'Name','Value' pair argument inputs for gscatter. It works like that:
gscatter(x,y,g). x and y is a same size vector and g is a grouping vector already.
Here is a demo:
x = rand(10,1);
y = rand(10,1);
g = [ones(5,1); ones(5,1)*2]; % first 5 values group number 1, last 5 values group number 2;
figure;
gscatter(x,y,g)
10 Comments
Rik
on 27 Nov 2019
Comment posted as answer by SatyaPrakash Gupta:
Yes i have gone through this but i did not find the 3rd property how to reuse the figure
like for example :
set(scatter,'XDATA',x , 'YDATA', y, 'ZDATA', z) --> this is used to replot the figure with updated values of x, y, z instead of creating a new figure
but
i am not able to find the 3rd property of gscatter
example
set(gscatter,'XDATA',x,'YDATA', y, ' ???' , grouping data)
?? -> what property shoule be mentioned int he question mark ?
i tried by using 'g' or 'group' but it has some error which says g or group is not a property defined for gscatter
can you please do help me out here ?
Regads,
Satya
Rik
on 27 Nov 2019
Yes i knew this but i would like to update the figure when there is a multiple data provided via GUI, therefore i need a 'NAME', pair arguments input for gscatter function.
therefore can you please do provide me the 'NAME' argument used for gscatter ?
Rik
on 27 Nov 2019
If you use the first example in the documentation:
load carsmall
h=gscatter(Displacement,Horsepower,Model_Year);
You will notice that this creates 3 separate line objects. This means you can't easily move points between groups, nor use a syntax like you suggest, unless you write a function that does this for you.
SatyaPrakash Gupta
on 28 Nov 2019
Walter Roberson
on 28 Nov 2019
There is no property name for the group. If you need to change the grouping, you need to call gscatter() again.
There is no "gscatter object": MATLAB uses primitive chart line objects to create the scatters.
SatyaPrakash Gupta
on 28 Nov 2019
Walter Roberson
on 28 Nov 2019
gscatter() does not create a new figure each time.
If you pass an axes as the first parameter to gscatter() then it will draw into that axes.
If you do not pass an axes as the first parameter to gscatter(), then gscatter() will call newplot() . newplot() looks for a current axes. If there is no current axes, then newplot() looks for the current figure in order to create an axes in it. If there is no current axes and no current figure, then newplot() will create a figure.
Therefore the solution to your problem is to pass in the axes as the first parameter to gscatter()
SatyaPrakash Gupta
on 28 Nov 2019
Walter Roberson
on 28 Nov 2019
You said this question came because , i want to gscatter to the existing figure instaed of opening new figure each time.
If you are having an issue where it keeps opening new figure() objects to plot into, then the difficulty is that it is not finding a current figure. (It is possible to end up with no figure in focus even though there are multiple figures.)
However, if the problem is that for reasons such as efficiency, you want to update the graphics created by gscatter() without calling gscatter() again, then if you want to change the grouping, there is no way to do that. There is no gscatter() object that holds the grouping information: gscatter() creates line() objects and puts all of the points that belong to the same group in the same line() object. You would have to manipulate the line object to change the groupings.
Image Analyst
on 28 Nov 2019
0 votes
There is no "Z" or third dimension for gscatter(). It's only x and y, NOT z.
The third input is what "group" the (x,y) points belong to, and that determines what color they get plotted in. For example group 1 appears with red markers and group 2 appears with green markers, or whatever.
If you want color with 3 dimensions (x, y, and z), I suggest you use plot3().
3 Comments
SatyaPrakash Gupta
on 28 Nov 2019
Edited: SatyaPrakash Gupta
on 28 Nov 2019
Image Analyst
on 28 Nov 2019
There is a difference, of course. plot3 can have 3 axes (x, y, and z) whereas gscatter can only have x and y as far as I can tell. Also plot3() can connect markers with lines whereas gscatter does only markers.
What is your "z"? Is it your group number? Do you even have groups? If so, what do the groups represent?
Attach the data you want to plot in a .mat file with the paper clip icon along with a screenshot of what you'd like to achieve.
SatyaPrakash Gupta
on 28 Nov 2019
Categories
Find more on Graphics Object Properties in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!