How to make separate graph for each class?

Hello, i have 6 classes in my project and i need to make one graph for each class... now my graph looks like this and i need graphs with average precision for each class...
...
i want each graph to look like this :

6 commentaires

Cris LaPierre
Cris LaPierre le 4 Mai 2023
Hard to know how to answer this without having your data and code.
should i put my entire code here ?
Cris LaPierre
Cris LaPierre le 4 Mai 2023
Modifié(e) : Cris LaPierre le 4 Mai 2023
At least the data and code you used to create your two figures. We need something to work with.
Only the first figure is mine, second one is just screenshoted from matlab page.
i have this code :
Run the detector on all the test images.
detectionResults = detect(detector,testData);
Evaluate the object detector using average precision metric.
[ap,recall,precision] = evaluateDetectionPrecision(detectionResults,testData);
Plot the PR curve.
recallv = cell2mat(recall);
precisionv = cell2mat(precision);
[r,index] = sort(recallv);
p = precisionv(index);
figure
plot(r,p)
xlabel("Recall")
ylabel("Precision")
grid on
title(sprintf("Average Precision = %.2f",ap))
----------------------------------------------------------
Here are the data
recall :
[0;0.166666666666667;0.333333333333333;0.500000000000000;0.666666666666667]
17x1 double
[0;0;0;0;0;0]
15x1 double
[0;0.111111111111111;0.222222222222222;0.333333333333333;0.444444444444444;0.555555555555556;0.666666666666667;0.777777777777778]
precision:
[1;1;1;1;1]
17x1 double
[1;0;0;0;0;0]
15x1 double
[1;1;1;1;1;1;1;1]
----------------------------------
i hope this will help you with helping me :)
After adding numbers for example 1 to "ap" the figure looks like this (but i don´t know if it´s figure only for first class or no) :
recallv = cell2mat(recall);
precisionv = cell2mat(precision);
[r,index] = sort(recallv);
p = precisionv(index);
figure
plot(r,p)
xlabel("Recall")
ylabel("Precision")
grid on
title(sprintf("Average Precision = %.2f",ap(1)))
Cris LaPierre
Cris LaPierre le 5 Mai 2023
Your data does not appear to have copied correctly. Try saving your variables to a mat file and then attach that to your post using the paperclip icon.

Connectez-vous pour commenter.

Réponses (1)

Shree Harsha Kodi
Shree Harsha Kodi le 22 Juin 2023

0 votes

To make separate graphs for each class in MATLAB, you can follow these general steps:
1) Identify the classes in your dataset. Depending on your data format, you may need to extract the class labels from your data.
2)Iterate over the classes and create separate graphs for each class. Within each iteration, filter the data points based on the current class and plot them.
Go through the below documentation for a better understanding:
MATLAB Scatter Plot: https://www.mathworks.com/help/matlab/ref/scatter.html
MATLAB Figure Properties: https://in.mathworks.com/help/matlab/creating_plots/setting-graph-properties.html
MATLAB Control Flow (for loop): https://in.mathworks.com/help/matlab/ref/for.html

Catégories

En savoir plus sur Deep Learning Toolbox dans Centre d'aide et File Exchange

Produits

Version

R2023a

Community Treasure Hunt

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

Start Hunting!

Translated by