5

MATLAB で単純な散布図をプロットしたいと思います。マーカーの色はスペクトルの端から端まで変化します (例: 赤、オレンジ、黄色....青、紫)。

私のデータは、河川の水量と水質を経時的に比較しています (時間、量、質の 3 つの単純な列)。量と品質のx、y散布図をプロットしたいと思いますが、時間の経過とともに色が変化するため、時間の経過に伴う品質の変化を確認できます。

このタイプのグラフを多数作成する必要があるため、任意の長さのデータセットで機能するコードを見つけることができれば、非常に便利です。

Matlabの初心者を助けてくれてありがとう!

4

2 に答える 2

10

の色の引数を使用できますscatter

データがすでに時間内にソートされている場合は、単に次を使用します。

% let n be the number of points you have
cmp = jet(n); % create the color maps changed as in jet color map
scatter(x, y, 10, cmp, 'filled');

それ以外の場合は、最初にデータを並べ替える必要があります。

[time, idx] = sort(time);
x = x(idx);
y = y(idx);
cmp = jet(n); % create the color maps changed as in jet color map
scatter(x, y, 10, cmp, 'filled');
于 2012-12-18T15:07:39.187 に答える
2

追加の変数で散布図に色を付ける最も簡単な方法は、単に「色」引数として渡すことです。、、、およびがxあるとします(ここで、timeは数値ベクトルです。代わりに、timeに日付文字列が含まれている場合は、最初にそれを呼び出します)。その後、あなたは書くことができますytimedatenum

scatter(x,y,[],time,'filled')

次に、カラーバーの軸に、特定の色が対応する時点が表示されます。重要なのは、測定間の時間が均一でない場合でも、これにより色が適切に進むことです。

/ aside:デフォルトのカラーマップはです。これはスムーズな遷移を視覚化するにはかなり悪いです。知覚的に改善されたカラーマップをファイル交換からjetダウンロードすることをお勧めします。これを使用してカラーマップを設定するには、

cmap = pmkmp(length(time));
colormap(cmap);
于 2012-12-18T16:53:42.133 に答える