0

scatter3次のコマンドを使用すると、「Matlab」でプロットする準備ができているこのマトリックスがあります

scatter3( F(:,[1]) , F(:,[2]) , F(:,[3]) , F(:,[4]) , F(:,[5]) )

(私は基本的にF行列を 5 つの列ベクトルに分割しています)

F =

   52.5000   12.6000  288.0000   20.0000    1.0000
   52.5000    6.3000  408.0000   20.0000    1.0000
   52.5000    4.8000  467.0000   20.0000    1.0000
   52.5000    3.5000  559.0000   20.0000    1.0000
   52.5000    2.0000  730.0000   20.0000    1.0000
   52.5000    1.3000  902.0000   20.0000    1.0000
   26.2500   12.6000  203.0000   20.0000    2.0000
   26.2500    6.3000  288.0000   20.0000    2.0000
   26.2500    4.8000  332.0000   20.0000    2.0000
   26.2500    3.5000  389.0000   20.0000    2.0000
   26.2500    2.0000  516.0000   20.0000    2.0000
   26.2500    1.3000  637.0000   20.0000    2.0000
   10.0000   12.6000  125.0000   20.0000    3.0000
   10.0000    6.3000  177.0000   20.0000    3.0000
   10.0000    4.8000  204.0000   20.0000    3.0000
   10.0000    3.5000  240.0000   20.0000    3.0000
   10.0000    2.0000  318.0000   20.0000    3.0000
   10.0000    1.3000  392.0000   20.0000    3.0000
    5.0000   12.6000   88.0000   20.0000    4.0000
    5.0000    6.3000  125.0000   20.0000    4.0000
    5.0000    4.8000  144.0000   20.0000    4.0000
    5.0000    3.5000  169.0000   20.0000    4.0000
    5.0000    2.0000  224.0000   20.0000    4.0000
    5.0000    1.3000  277.0000   20.0000    4.0000
    2.0000   12.6000   55.0000   20.0000    5.0000
    2.0000    6.3000   78.0000   20.0000    5.0000
    2.0000    4.8000   90.0000   20.0000    5.0000
    2.0000    3.5000  106.0000   20.0000    5.0000
    2.0000    2.0000  141.0000   20.0000    5.0000
    2.0000    1.3000  175.0000   20.0000    5.0000
    1.0000    6.3000   55.0000   20.0000    6.0000
    1.0000    4.8000   63.0000   20.0000    6.0000
    1.0000    3.5000   75.0000   20.0000    6.0000
    1.0000    2.0000   99.0000   20.0000    6.0000
    1.0000    1.3000  123.0000   20.0000    6.0000
    0.5000    6.3000   38.0000   20.0000    7.0000
    0.5000    4.8000   44.0000   20.0000    7.0000
    0.5000    3.5000   52.0000   20.0000    7.0000
    0.5000    2.0000   70.0000   20.0000    7.0000
    0.5000    1.3000   86.0000   20.0000    7.0000

これをプロットすると、ポイントが 7 つの同じ色のグループにグループ化されていることがわかります ( F行列の列 5 から取得)。

同じ色の点を結ぶ線をプロットしたいと思います。もちろん、線はそれらが接続する点と同じ色でなければなりません。

Fマトリックスを 5 つの 6x5 マトリックス ( F1 - F5という名前) と 2 つの 5x5 マトリックス ( F6およびF7という名前)に分割し、コマンドとscatter3()一緒に使用して 3D グラフを作成しようとしましたが、望み通りにはなりませんでした。line()hold on

scatter3()すでにプロットされている点のセットとともにプロットされる新しい点のセットごとに、色が変わります。そのため、関数で短い名前の色を割り当ててline()も役に立ちません。

どのようなオプションがありますか? おそらくscatter3、この場合に使用するのに最適な機能ではないでしょうか?

編集

plot3()有望ですが、カラーセットが限られています。確かに、白い背景ではうまく表示されない「白」と「黄色」の色の使用は避けたいと思います。

4

1 に答える 1

3

したがって、動的変数は悪いので、この場合、行列を 7 つに分割し、それらをセル配列に保存すると仮定します。Fこれが機能するというセル配列があると仮定します。

C=hsv(7);
hold on
for ii=1:size(F,2)
   % //plot lines
   plot3(F{ii}(:,1),F{ii}(:,2),F{ii}(:,3),'Color',C(ii,:));
   % // plot points  
   plot3(F{ii}(:,1),F{ii}(:,2),F{ii}(:,3),'.','MarkerSize',F{ii}(1,4),'Color',C(ii,:)); 
end

ここに画像の説明を入力

唯一の問題は、複数のマーカー サイズを許可しないことです。そのため、ポイントに異なるマーカー サイズを設定したい場合は、別のループを追加して、ポイントを 1 つずつプロットする必要があります。ここから取得できることを願っています;)

于 2015-10-16T12:49:09.340 に答える