機能

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

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

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

<Example>
clf()
subplot(1,3,1);
bar([1,-3,5]);
subplot(1,3,2);
x=[1,2,5];
y=[1,-5,6;3,-2,7;4,-3,8];
bar(x,y);
subplot(1,3,3);
x=[1,2,5];
y=[1,4,7;2,5,8;3,6,9];
bar(x,y,'stacked');

 まず最初は棒グラフです。上にオプション別で3種類作成しています。subplotはプロットウィンドウを分割してアクティブにする領域を指定するものですが、1つ目は単純に各項目の持つ値を棒で表現しています。中央は各項目が複数の値を持つ場合の例です。1つ目のときには1x3行列で3成分を表しましたが、3行にすることでそれぞれが複数の値を持つ表現となります。3つ目は積み上げグラフです。オプションで'stacked'を追加することにより複数の値を積み上げていくグラフになります。barの代わりにbarhとすれば水平方向へ伸びる棒グラフの描画になります。

<Example>
clf()
pie([5,9,4,6,3],[0,1,0,1,0]);

 棒グラフがあれば円グラフももちろんあります。コマンド内1つ目の[5,9,4,6,3]で各成分の持つ値を入力すれば、合計を内部で計算して割合に応じた扇形としてグラフが作成されます。2つ目の[0,1,0,1,0]では1を立てた要素については中心から離して描画するというオプションです。さらに3つ目の追加により%での表示を任意のテキストに変更(空白により削除)すること等も可能です。

 ここからは3D編です。とは言っても次元が1つ増えただけで基本的なコマンド構文は全く同じです。

<Example>
clf()
subplot(1,2,1);
t=[0:0.3:2*%pi]';
z=sin(t)*cos(t');
plot3d(t,t,z);
subplot(1,2,2);
surf(z);

 1つ目(左)はplot2dを3次元化したのと同じで、X,Y,Zの各成分について行列を作成し各点を繋ぐような曲面を作成します。scatter3dも同じで、3次元上に要素の座標をプロットします。2つ目(右)は同じZ成分を用いていますが、plot3dと異なるのはX,Yの成分は無く、Z成分の行列に対してX,Y成分は行/列番号になっている点です。

 次回からは描画したグラフを見やすくしたり、飾ったりと言ったような操作をご紹介します。