How can I add a trendline to a scattergraph of multiple data sets?

Hey Everyone,
I have uploaded my code and a data set that I am trying to process.
So I created a code that works well enough for my purposes. The trouble that I am having is that I need a scatter graph, with all the points that i included in the plotting section. But i also need a trendline for each plot within that one graph. And I need to find the gradient of the trendline for each data set and store it in a variable.
I tried to use, this command, but i am not sure if it the same as a trendline in excel and also cannot get the gradient for this. I would appreciate any help!!
lsline

 Réponse acceptée

The lsline function needs a bit of help to give up its secrets.
Try this:
figure
scatter(rand(1,10), rand(1,10))
hold on
scatter(rand(1,20), rand(1,20))
hold off
h = lsline;
for k = 1:numel(h)
B = polyfit(h(k).XData, h(k).YData,1);
slope(k) = B(1);
intercept(k) = B(2);
end
Experiment with your own data and plots to get the result you want.

11 commentaires

Thank you!
What is the k variable?
My pleasure!
The ‘k’ is the loop index. (It can be any legal variable name.) See the documentation on the for function for an introduction to for loops in MATLAB.
i implemented it in my code and it does not work
it keeps coming up with :No appropriate method, property, or field 'ccData' for class 'matlab.graphics.primitive.Line'.
My example code ran for me without error in R2019b.
What version/release of MATLAB are you using?
Please post your code (and attach any necessary data files) so that I can see what the problem could be.
I have attached them in a zip file inthe question. I use 2018 version i think.or maybe 2017
I do not see any attachments.
Hey sorry, i did attach it but for some reason it did not upload it. I tried to upload the files again, zipped them, but it did not allow me.
So I only uploaded the matlab file.
The table tha i am using is just massive with several sheets, and have loads of data points.
I gave it another go and it worked now ! Sorry for the confusion!! I very appreciate your help! Thank you!
As always, my pleasure!
Hello, I wanted to do the same thing and used your code.
How to I tweak this code so it is using my data points? Everytime I try to add it into the line, B = polyfit(h(k).XData, h(k).YData,1); with dot indexing it does not work, it gives me this error:
Unrecognized method,
property, or field
'VariableName' for class
'matlab.graphics.primitive.Line'.
@Sena — I would have to know more about your particular problem. I just tested it again using R2023b and it still works.

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur 2-D and 3-D Plots dans Centre d'aide et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by