機能

Scilab使用例(5) -グラフ描画(1)の1

  • 2020/10/23
  • WATANABE Tomoo
Scilab使用例(5) -グラフ描画(1)の1

 色々なシチュエーションを想定し、使えそうなスクリプトをご紹介していきたいと思います。
 "グラフ描画"シリーズを複数回に渡ってご紹介していますが、今回は「(主な)描画可能なグラフの種類と使用コマンド」です。

 前回記事でplot2dとその派生としてplot2d1から4を御覧いただきました。他にも数多くのグラフを描画することが可能ですので、代表的なものに絞って事例をご紹介したいと思います。便利な場合がありますので使用例をご紹介します。

<Example>
clf()
x = linspace(0,2,200);
y = exp(-x).*cos(10*x) + 0.2*rand(1,length(x));
scatter(x,y);

 まず最初は散布図です。plot2dと構文は同じですが表現として各座標を結ぶことなく点の位置だけを表現したものです。x及びyをそれぞれ行列として定義してscatterコマンドX-Y平面にプロットしています。上のサンプルはデフォルトを使用していますが、オプションによりマーカーの種類や色、大きさ等を変更することももちろん可能です。

<Example>
clf()
deff("[y]=f(x)","y=sin(x)+cos(x)")
x=[0:0.1:10]*%pi/10;
fplot2d(x,f)
;

 こちらは関数定義を行って、式から直接グラフを描画するものです。まず、deffにより関数を定義しています。次にxの範囲を定義した上で、fplot2dを用いてx及び対応するyの値を描画するというものです。つまり予め描画するための(y座標)データを行列として準備していないということが他と異なっています。

<Example>
clf()
champ(-5:5,-5:5,rand(11,11),rand(11,11));

 こちらはX-Y平面に対して各点が持つベクトルを表示させるものです。コマンド内で初め2つの-5:5はX-Yの範囲を指定し、次の2つrand(11,11)は各点におけるベクトルの成分(X,Y方向)を乱数で定義しています。天気予報の風向/風速情報のような表現方法です。

<Example>
clf()
contour2d(1:10,1:10,rand(10,10),5);

 こちらはコンター(等値線)図です。X-Y平面上の各点が持つZ値について、同じ値を持つ点を繋いでいく事で分布や広がりといったものが見られます。コマンド内で初め2つの1:10はX-Yの範囲を指定し、次のrand(10,10)は各点におけるZ成分を乱数で定義しています。その後ろはオプションですが、最大/最小値を基にいくつの領域に分割するか(5本の等高線を描く)を定義しています。

<Example>
clf()
grayplot(-10:10,-10:10,rand(21,21));


 こちらはX,Y方向それぞれに区切ったエリアをZ成分に応じて塗り分けたものです。コマンド初め2つの-10:10でX-Yの範囲を指定し、次のrand(21,21)は各点におけるZ成分を乱数で定義しています。

 次回はもう少し他の例と3D編についてご紹介します。