How do I label the points in a multidimensional scaling plot?
4 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
I am studying how to do multidimensional scaling in matlab. I am able to reproduce the output (2D plot) from a published example (http://www.sthda.com/english/articles/31-principal-component-methods-in-r-practical-guide/122-multidimensional-scaling-essentials-algorithms-and-r-code/).
The output is based on the data table found in the Swiss Fertility and Socioeconomic Indicators (1888) (https://rpubs.com/krishnakuyate/Swiss_FS_Data).
I constructed a 47x47 array of Euclidean distances (D) of the Swiss Fertility and Socioeconomic Indicators and ran Y=cmdscale(D,2) to obtain a plot of these data:
My plot looks very similar (but inverted mirror image) to the published plot from http://www.sthda.com/english/articles/31-principal-component-methods-in-r-practical-guide/122-multidimensional-scaling-essentials-algorithms-and-r-code/:
But how can I get matlab to label the points in my plot as is done above in the published figure?
0 commentaires
Réponse acceptée
Andres Adam
le 6 Juin 2024
Hi Stephen, check out the first example in the documentation of cmdscale:
There is no direct option in cmdscale to add text, but we can do so by using the function text, with the point coordinates offset by a little bit, and a cell array of names:
plot(Y(:,1),Y(:,2),'o') % Your plot
text(Y(:,1)+25,Y(:,2),names)
where the variable names is something like
>> names = {'Herens', 'Sierre', 'Conthey', ... }; (in the appropriate order!)
2 commentaires
Andres Adam
le 6 Juin 2024
I did not know that feature! Thanks for pointing it out, and be careful to not confuse points when labeling manually :)
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur Line Plots dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!