How do I label the points in a multidimensional scaling plot?
4 ビュー (過去 30 日間)
古いコメントを表示
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 件のコメント
採用された回答
Andres Adam
2024 年 6 月 6 日
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 件のコメント
Andres Adam
2024 年 6 月 6 日
I did not know that feature! Thanks for pointing it out, and be careful to not confuse points when labeling manually :)
その他の回答 (0 件)
参考
カテゴリ
Help Center および File Exchange で Line Plots についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!