MATLAB Answers

0

Scatter Plot with string in x-axis and integer on y-axis

Asked by Mahaveer Uttamchand on 22 Jul 2019
Latest activity Commented on by TADA
on 22 Jul 2019
My data is
samples=["4S1";"4S2";"4S3";"4S4";"4S5"]';
percentage=[0;-11.5000000000000;-2.44000000000000;-8.13000000000000;-2.44000000000000]';
scatter(samples,percentage);
Error Message:
Error using scatter (line 56)
Input arguments must be numeric, datetime, duration or categorical.
Can anyone please help?

  2 Comments

I tried with the code, no error in my case. But the question is obvious, samples is strings, how you are going to plot with non numeric variables? Are you looking for Bar Plot?
Thank you KALYAN ACHARJYA for your answer, however, please check my answer that I posted recently. Have a good day. Thank you once again :)

Sign in to comment.

2 Answers

Answer by Mahaveer Uttamchand on 22 Jul 2019
 Accepted Answer

I had found myself recently, actually as mentioned in the error, it should be categorical,
Here is the program,
n=["4S1";"4S2";"4S3";"4S4";"4S5"]';
y=[0;-11.5000000000000;-2.44000000000000;-8.13000000000000;-2.44000000000000]';
x=categorical(n);
s=scatter(x,y);
and if you want your graph to look nice, use the following,
s.LineWidth = 0.6;
s.MarkerEdgeColor = 'b';
s.MarkerFaceColor = [0 0.5 0.5];

  2 Comments

Ohh Yes, its Nice, Thank You.
Elegant solution +1 from me

Sign in to comment.


Answer by TADA
on 22 Jul 2019

Maybe bar chart would be better for you, but if you must use scatter plot
scatter(1:5,percentage);
set(gca, 'XTick', 1:5, 'XTickLabel', samples);

  2 Comments

One more thing, when you need to plot something but don't know how, its always a good idea to check the plot gallery
Thank you TADA for your answer, however, please check my answer that I posted recently. Have a good day. Thank you once again :)

Sign in to comment.