散布図で点と点を線で結んで三角形を10個作りたい(1グループ3点,計10グループ)
조회 수: 13 (최근 30일)
이전 댓글 표시
data.matのデータから10グループに色分けした散布図を作成しました。しかし、直感的にグループを判断しづらいので、グループごとに点と点を線で連結させて、3点から三角形を作成したいと考えました。色々と調べてみましたが解決策が見つけられませんでしたのでどなたかご教示いただけないでしょうか。
댓글 수: 0
채택된 답변
Shunichi Kusano
2021년 1월 7일
triplotという三角形を描画する用の関数があるので、使って作ってみました。
data1=table2array(data);
X=data1(1:end,1) + rand(height(data),1)*1e-6;
Y=data1(1:end,2) + rand(height(data),1)*1e-6;
Group=data1(1:end,3);
g = gscatter(X,Y,Group);
DT = reshape([1:30],3,10)';
hold on;
triplot(DT,X,Y,'-k')
hold off;
legend(g,string(unique(Group)))
2、3行目で微小な乱数を足しているのは、 重複する座標があって三角形が形成されないデータがあり、エラーとなってしまったので、それを回避するためです。
ポイントはDTなのですが、これは各行がどの点同士が3角形を形成するかを定義しています。
お手持ちのデータでは上から1,2,3行目が1組 4,5,6行目が1組、7,8,9行目が1組み...と続いていますので
1 2 3
4 5 6
7 8 9
...
と続くような配列を作りました。
triplot関数ではDTにしたがってX,Yから1組の三角形をなす行を抽出して線でつないで表示してくれています。
추가 답변 (0개)
참고 항목
카테고리
Help Center 및 File Exchange에서 Scatter Plots에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!