Scatter plot with variable symbol size - it's not linear

5 views (last 30 days)
I'm trying to use the feature in the scatter plot where the symbol size is proportional to a variable and it seems that the scaling of the symbol size is not linear.
Here is some test code and the resulting plot:
x = 1:100;
y = ones( size(x) );
scatter( x, y, 100*x, '|' );
xlim( [0 101] );
ylim( [0 2] );
Is this the expected behaviour? I need the symbol size to vary linearly with the variable.

Accepted Answer

Jon
Jon on 4 Aug 2023
Edited: Jon on 4 Aug 2023
According to the documentation for scatter, the size in "points squared" units, try this
x = 1:100;
y = ones( size(x) );
scatter( x, y, x.^2,'|' );
xlim( [0 101] );
ylim( [0 2] );
  2 Comments
dormant
dormant on 4 Aug 2023
That's brilliant, many thanks!
Now I see it in the documentation.
Jon
Jon on 4 Aug 2023
Your welcome. When first I read the documentation it wasn't really clear to me whether that meant I should take the square root of x, or square it. A little trial and error quickly showed squaring it was the right way to go.

Sign in to comment.

More Answers (0)

Products


Release

R2023a

Community Treasure Hunt

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

Start Hunting!