Scatter plot with categorical x axis

I need to produce scatter plot with categorical x axis.
I used this script:
figure(1)
x=['pixels'];
y=Tmean_split.pixels;
scatter(x,y)
in which the size of Tmean_split.pixels is 6*1.
I recieve this error:
Must supply X and Y data as first arguments.
Any idea why this error happening?

 Accepted Answer

dpb
dpb on 24 Dec 2019
Edited: dpb on 24 Dec 2019
'pixels' isn't an allowable argument for the x value position...it's a char() array string array and that's confusing the input parser inside scatter() -- it's trying to interpret the character string argument as one of the trailing optional arguments like the colorspec or the like, but as the documentation says, the x, y data have to be supplied before any of those.
scatter() also MUST have both x and y data arguments; you can't just give it a y vector like plot(). It will accept a categorical array as the X axis value, but you'll have to define it for the six categories to which each of the y variable values belongs to do so.

2 Comments

What would be your solution? I need to have categorical value for X and nmerical value for Y showing the scatter values of the Ys.
dpb
dpb on 25 Dec 2019
Edited: dpb on 25 Dec 2019
What are the categories? You've not shown what you want the x values to be. What part does the word 'pixels' play in things here?
x='pixels';
x=categorical(cellstr(x.'))
scatter(x,rand(size(x)),'filled')
yields
but I really doubt that's what you had in mind. But, as noted above, it does illustrate that scatter will accept a categorical x value, you just have to define what those are supposed to be...
Note by default order of the categorical array is alphabetic..

Sign in to comment.

More Answers (0)

Tags

Asked:

on 24 Dec 2019

Edited:

dpb
on 25 Dec 2019

Community Treasure Hunt

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

Start Hunting!