プロット後に散布図のドットを結合し、ドットプロットから線を作成するにはどうすればよいですか?
4 に答える
から散布図を生成しx
、y
座標を
plot(x,y,'.');
それらに参加する
plot(x,y,'.');
hold on;
plot(x,y,'-');
または、1 つのコマンドで
plot(x,y,'.-');
これはあなたが望んでいたものですか?
散布図として既存のプロットがある場合、どのポイントが他のどのポイントに接続されているかを知らずに、単純にドットを結合することはできません。
ポイントの順序/接続性がわかっている場合は、最初にプロット関数を使用するだけで済みます。呼び出し
plot(x,y,'-')
点を直線セグメントで接続します。線に沿った各ポイントでマーカー シンボルを使用する場合は、次のように、プロットが許可するマーカーの 1 つを追加できます。
plot(x,y,'o-')
から許可されたマーカーのリストを取得できます。
help plot
一連の点で散布図を使用しており、点を結ぶ線をオーバーレイしたい場合は、 hold 関数を使用して、matlab が散布図の上にプロットされるように強制します。例えば、
scatter(x,y)
hold on
plot(x,y,'-')
hold off
繰り返しになりますが、これらのバリエーションでは、ポイント間の接続を知る必要があります。孤立したポイントのリストからその接続を回復するために時々機能するスキームがいくつかあります。これらの方法の 1 つはCRUSTと呼ばれ、3 次元の表面再構成によく使用されます。「クラスト アルゴリズム」で簡単に検索すると、多くの参考文献が見つかりました。
散布図(私が疑う散布関数で作成)があり、何らかの理由でそれをプロットで再描画したくない場合は、ドットを接続するために次のことができます。
h = findobj(gca,'type','hggroup');
hold on
for k=1:numel(h)
x = get(h(k),'xdata');
y = get(h(k),'ydata');
plot(x,y,'-')
end
hold off
ドットは元の順序で接続されます。必要に応じて、プロットの前にデータを x などで並べ替えることができます。
[x,ind] = sort(x);
y = y(ind);