GNU Octave 2.1.x 日本語マニュアル/プロット

Octaveの全てのプロット関数は,実際のグラフィックを扱うためにgnuplot を使用する。大部分のプロット型は,基本的なプロット関数を使用して生成される。これはMATLABにおける同等の関数を真似て作られている。これらの関数を利用することは,一般には率直であり,プロットを生成するための好ましい方法である。しかしながら,gnuplotに馴染んだユーザや,基本的なコマンドが適切でないような場面での特殊な応用に対しては,Octaveは 2つの低水準関数,gplotとgsplotも提供している。これらは,対応するgnuplotの関数plotとsplotのようにほぼ正確に動作する。また,最近のバージョンから拡張されたMATLABの機能,たとえばhandle-graphicsと関連する関数は実装されていないことに注意する必要がある。
MATLABスタイルの2次元プロットコマンドは,以下のようなものである。
[Function File]
この関数は,2次元プロットを出力する。引数の多数の異なる組み合わせが可能である。最も単純な形式は,
である。ここで,その引数はyに連動する集合として受け入れられ, xに連動する値は,1から開始する要素のインデックスであると受け入れられる。1つ以上の引数を与えると,それらは以下のように解釈される。
ここでyとfmtはオプションであり,任意の数の引数セットが現れてもよい。xとyの値は,以下のように解釈される。
もしfmt引数を与えるならば,以下のように解釈される。もしfmt が与えられなければ,標準の gnuplot 直線スタイルを仮定する。
カラーラインスタイルは,色をサポートするターミナルにおいて,以下のような意味を持つ。
引数fmtはキータイトルを割り当てるためにも使用できる。そうするには,上で説明したフォーマット項目の後ろに,希望するタイトルをセミコロンで挟んで含める。たとえば
のようにする。最後のセミコロンは必要であり,付けないとエラーが発生する。
いくつかのプロット例を示す:
このコマンドは,yをタイプ2('+'で表示される)の点と色1 (赤)で,y2を直線で,y3を色4(マゼンタ)で,y4を '+'で表示される点でプロットする。
このコマンドは,ベクトルb内のデータが'*'で表示される点でプロットする。
これは余弦関数および正弦関数と,キーに対応するラベルをプロットする。
[Built-in Function]
直後にプロットコマンドを実行するときに,プロット上の現在のデータを「ホールド」することをOctaveに指示する。これは,一連のプロットを実行できるようにし,同じ図にすべてのラインを描画する。初期設定は,各々の新たなプロットコマンドについて,プロットするデバイスを最初にクリアするようにする。たとえば,
このコマンドは,ホールド状態をオンにする。offという引数は,ホールド状態をオフにし,何も引数を付けずにholdを実行すると,オンとオフを切り替える。
[Built-in Function]
もし次のラインが現在のプロットに追加されるならば1を,次のラインを描画する前にプロットデバイスがクリアされるならば0を返す。
[Built-in Function]
プロットウインドウと,タイトル,軸ラベルをクリアする。clgは, MATLABとの互換性のための,clearplotの短縮名である。
gplot clear,gsplot clearおよびreplot clearコマンドは,clearplotに等しい(以前には,gplot clearのようなコマンドは,clearとして評価され,全ての可視変数をクリアすることになっていた)。
[Function File]
グラフウインドウを表示する。現在のところ,これは再プロットを実行することと同じである。
[Built-in Function]
gnuplotサブプロセスへのストリームをクローズする。もしX11を使用しているならば,これはプロットウインドウをクローズする。
[Built-in Function]
プロットコマンドによって作成されたテンポラリファイルを削除する。
Octaveはgnuplotのためにテンポラリデータファイルを作成し,パイプを通してgnuplotにコマンドを送る。Octaveは終了時にテンポラリファイルを削除するが,多くのプロットを実行するならば,セッションの途中でファイルを削除したいと思うかもしれない。
Octaveの将来のバージョンでは,プロットデータを保持するためのテンポラリファイルを使用する必要性がなくなるであろう。
[Function File]
プロットについて軸の限界値をセットする。
引数limitsは,2,4または6個の要素をもつベクトルとするべきである。 1番めと2番めの要素は,x軸の下限と上限を指定する。3番めと4番めの要素は, y軸の限界値を指定する。また,5番めと6番めはz軸の限界値を指定する。
何も引数を付けないときには,axisは自動スケール化をオンにする。
出力引数を1つ付けたときには,x=axisは現在の軸を返す(これは自動軸設定については実装されていない)。
限界値を指定するベクトル引数はオプションであり,追加的な文字列引数は様々な軸を適切に指定するために使用できる。たとえば,
このコードは,正方アスペクト比とし,
これは,全ての軸に目盛りマークを付け,y軸にのみ目盛りラベルを付ける。
以下のオプションは,軸のアスペクト比をコントロールする。
以下のオプションは,軸の限界値が解釈される方法をコントロールする。
以下のオプションは,目盛りの外観に影響する。
以下のオプションは,軸における値の増分の方向に影響する。
[Function File]
x-yデータの2つのベクトルを与え,バーグラフを描画する。 もし1つの引数のみが与えられるならば,y値のベクトルとして採用され, x軸の値は要素のインデックスとして与えられる。 もし2つの出力引数が指定されたならば,そのデータは生成されるがプロットされる。たとえば,
および
の2つは等価である。
[Function File]
zによって記述された3次元外観の等高線プロットをする。この関数が非常に有用になる前には,gnuplotの等高線ルーチンを高める必要がある。
[Function File]
ヒストグラムカウントあるいはプロットをする。
入力の引数に1個のベクトルを付けると,10個のbinで,その値のヒストグラムをプロットする。ヒストグラムbinの幅は,データの範囲によって決定される。
2番めの引数にスカラを与えると,binの数として使用する。
2番めの引数にベクトルを与えると,binの中心値として使用し,そのベクトルにおいて調整された値から決定されたbinの幅を使用する。
もし3番めの引数が与えられるならば,そのヒストグラムは,バーの和が normに等しくなるように標準化される。
外れ値は,最初および最後のbinにまとめられる。
2つの出力引数を付けると,bar (xx, nn)がヒストグラムとなるようなnnとxxを返す。
[Function File]
両軸に対して対数スケールを使用して2次元プロットする。loglog 関数が受け付ける引数の説明は,plotの解説を参照せよ。
[Function File]
極座標thetaとrhoを与えて2次元プロットをする。
オプションの3番めの引数は,ラインのスタイルを指定する。
[Function File]
x軸を対数スケールにして2次元プロットをする。semilogx 関数が受け付ける引数の説明は,plotの解説を参照せよ。
[Function File]
x軸を対数スケールにして2次元プロットをする。semilogy 関数が受け付ける引数の説明は,plotの解説を参照せよ。
[Function File]
x-yデータの2つのベクトルを与え,「階段」プロットをする。
もし1つの引数のみが与えられるならば,y値のベクトルとして採用され, x軸の値は要素のインデックスとして与えられる。
もし2つの出力引数が指定されたならば,そのデータは生成されるがプロットされる。たとえば,

および
の2つは等価である。
[Function File]
この関数は,エラーバー付きの2次元プロットをする。引数の多くの組み合わせが可能である。最も単純な使用方法は,以下のようになる。
ここで最初の引数はy軸値の集合として採用され,2番めの引数 eyは,y値のエラーとして受け入れられる。x軸の値は,1から始まる要素のインデックスとなる。
もし2つ以上の引数が与えられるならば,それらは以下のように解釈される。
ここでxとyの後ろには,ey,ex,ly, uyなどのように,プロットの種類によって,4つまでのエラーパラメータがあっても良い。フォーマット文字列で分けられるまで,任意の数の引数セットを指定することができる。
もしyが行列ならば,xおよびエラーパラメータも同じ次数である行列でなければならない。yの列は,xの対応する列に対してプロットされ,エラーバーはエラーパラメータの対応する列から描かれる。
もしfmtが指定されていなければ,y軸エラーバー("~")プロットスタイルを仮定する。もしfmt引数が与えられるなら,通常のプロットとして解釈される(__pltopt__を参照)。さらに,以下のプロットスタイルがエラーバー付きで利用できる。
例:
x-exからx+exまで描かれるxエラーバーを付けてxのyに対するxerrorbarプロットする。
xのy1とy2に対する2つのyerrorbarプロットする。 y1についてのエラーバーは,y1-eyからy1+ey までで描かれ,y2についてのy2-lyからy2+uy までで描かれる。
xエラーバーは,x-lxからx+uxまでで描かれ, yエラーバーは,y-lyからy+uyまでで描き, xのyに対するxyerrorbarプロットする。
[Function File]
この関数は,エラーバー付きで両軸が対数軸における2次元プロットをする。引数のさまざまな組み合わせが可能である。もっとも利用される使い方は,以下のようなものである。
これは,eyで定義されるyスケールの誤差と,fmtによって定義されるプロットフォーマットを用いて,xのyに対する両対数軸プロットをつくる。利用可能なフォーマットに対するエラーバーと追加の情報を参照せよ。
[Function File]
この関数は,エラーバー付きで両軸が対数軸における2次元プロットをする。引数のさまざまな組み合わせが可能である。もっとも利用される使い方は,以下のようなものである。
これは,eyで定義されるyスケールの誤差と,fmtによって定義されるプロットフォーマットを用いて,xのyに対する両対数軸プロットをつくる。利用可能なフォーマットに対するエラーバーと追加の情報を参照せよ。
[Function File]
この関数は,エラーバー付きで両軸が対数軸における2次元プロットをする。引数のさまざまな組み合わせが可能である。もっとも利用される使い方は,以下のようなものである。
これは,eyで定義されるyスケールの誤差と,fmtによって定義されるプロットフォーマットを用いて,xのyに対する両対数軸プロットをつくる。利用可能なフォーマットに対するエラーバーと追加の情報を参照せよ。
MATLABスタイルの3次元プロットコマンドは,以下のようなものがある。
[Function File]
meshdomから行列xとy,そしてメッシュのxと y座標に対応する行列zを与えて,メッシュをプロットする。もしxとyがベクトルならば,典型的な頂点は, (x(j), y(i), z(i,j))となる。従って,zの列は,さまざまなx値に対応し,zの行はさまざまなy値に対応する。
[Function File]
xおよびy座標のベクトルを与え,メッシュのxおよび y座標に対応する2つの行列を返す。xxの行はxのコピーであり,yyの列はyのコピーである。
[Function File]
xおよびy座標のベクトルを与え,メッシュのxおよび y座標に対応する2つの行列を返す。 注意: この関数はMATLABの旧バージョンとの互換性のために提供されているものである。かわりにmeshgridを使用すべきである。
[Function File]
2次元プロットについて,プロットにグリッドを表示させる。引数は, "on"または"off"のどちらかをとる。もしこれを省略すると,"on"であると仮定する。
[Function File]
プロットのタイトルを指定する。
[Function File]
プロットのx軸,y軸およびz軸ラベルを指定する。もしすでにプロットを表示しているならば,新たなラベル付きのプロットを表示するために,replot コマンドを使用する。
[Function File]
プロットの上部(下部)にstringなるテキストをタイトルとする。
以下の関数は全て,マルチプロット機能をサポートするgnuplotのバージョンを必要としている。
[Function File]
これは,1ページに複数のグラフをプロットできるようなgnuplotのマルチプロット版で動作するようなplot関数の修正版である。このプロット版は,各々の引数セットを処理した後で,次のサブプロット位置に自動的に進める。
さまざまなオプションについて,plot関数の解説を参照せよ。
[Function File]
マルチプロットモードをセットしたりリセットする。
もし引数がゼロでないならば,multiplotはxおよびy軸に沿ってxnおよびynサブプロットでマルチプロットモードをセットアップする。もし両方のモードがゼロならば,multiplotはマルチプロットモードをクローズする。
[Function File]
もしマルチプロットモードに入っていれば,シングルプロットモードに切り替わる。
[Function File]
境界を示す側を指定するために,複数の引数を指定できる。許容される引数は,以下のようなものである。
この引数は,1文字に短縮してもよい。何も引数を付けないときは, plot_borderは境界をオフにする。
[Function File]
gnuplotをマルチプロットモードにして,インデックスによって与えられる位置にプロットする(cols×rowsのサブウインドウが存在する)。
subplotを呼び出す前に,コマンド__gnuplot_set__ size xsize, ysize が使用されるときに,グローバル変数__multiplot_scale__が使用される。
__multiplot_scale__の値は,2つの要素を持つベクトルとなるべきであり,最初の要素はxsizeに等しく,2番めはysizeに等しい値をセットする。
もし1個の引数を与えるならば,3桁の値でなければならない。その値は,1桁目に行数,2桁目に列数,3桁目にプロットインデックスを指定する。
プロットインデックスは,行方向に並ぶ。ある行における全ての列を最初に埋められ,続いて次の行が埋められる。
たとえば,4行2列のマス目をもつプロットは,以下のように並ぶプロットインデックスをもつ。
[Function File]
マルチプロットモードにおいて,サブウインドウの位置を次の枠にセットする。マルチプロットモードは,この実行前にmultiplot関数を使用して初期化されている必要がある。一方,このコマンドはmultiplot への短縮名である。
[Function File]
現在のプロットウインドウを,ウインドウnにセットする。現在のところ,この関数は,X11と,マルチフレームをサポートするgnuplotのバージョンを必要とする。もしnが指定されなければ,次に利用可能なウインドウ番号が選ばれる。
[Command]
2次元プロットを生成する。
ranges,using,titleおよびstyle引数はオプションであり,using,titleおよびstyleの量指定子は,その式の後に,任意のオーダで指定することができる。カンマで分けることによって, 1個のコマンドで複数の式をプロットすることができる。各々の式が,それぞれの量指定子をもつことができる。
オプション項目rangesは,以下の記述方法をもつ。
また,この記述方法は,実際のデータ範囲とは独立に,プロットの軸の範囲を指定するために使用できる。y軸の範囲および個々の限界値のいずれかは省略することができる。範囲[:]は,使用すべき標準の限界値を示すものである。これは,普通,全てのデータ点を含むくらい充分に大きな範囲が使用される。
プロットされるべき式は,何らかの定数行列(たとえば[ 1, 2; 3, 4 ])を含んではいけない。なぜならば,データ行列からのプロット範囲を識別することはほぼ不可能であるからである。
オプション項目に対する記述法の解説については,gnuplotのヘルプを参照のこと。
初期設定により,gplotコマンドは行列の1列めと2列めに対してプロットする。もしその行列が1列だけしか含まないならば,y座標のベクトルとして受け入れられ,x軸はゼロから開始する要素のインデックスとなる。たとえば,
このコマンドは,100個の乱数値とそれらを繋ぐ直線をプロットする。 gplotが列ベクトルをプロットするために使用されるときには,その要素のインデックスはx値として受け入れられる。
もし2つ以上の列が存在するならば,using量指定子を用いて,プロットすべき列を選択することができる。たとえば,以下のデータが与えられているとする。
このとき,
このコマンドは,2つのラインをプロットする。最初のラインは, data with linesコマンドによって生成されており,-10から10までの範囲にわたる正弦関数のグラフである。データは,その行列の最初の2列から受け入れられる。なぜならば,プロットすべき列は, using量指定子では指定できないからである。
このプロットの2番めの部分における項目using 1:3は,行列 dataの1番めと3番めの列がプロットすべき値として受け取るということを指定する。
この例において,その範囲は,実際のデータ範囲よりも少し大きめに明示的に指定されていた。結果として,その曲線はプロットの境界に触れることはない。
[Command] 3次元プロットを生成する。 ranges,using,titleおよびstyle引数はオプションであり,using,titleおよびstyleの量指定子は,その式の後に,任意のオーダで指定することができる。カンマで分けることによって, 1個のコマンドで複数の式をプロットすることができる。各々の式が,それぞれの量指定子をもつことができる。 オプション項目rangesは,以下の記述方法をもつ。
また,この記述方法は,実際のデータ範囲とは独立に,プロットの軸の範囲を指定するために使用できる。y軸とz軸の範囲および個々の限界値のいずれかは省略することができる。範囲[:]は,使用すべき標準の限界値を示すものである。これは,普通,全てのデータ点を含むくらい充分に大きな範囲が使用される。
プロットされるべき式は,何らかの定数行列(たとえば[ 1, 2; 3, 4 ])を含んではいけない。なぜならば,データ行列からのプロット範囲を識別することはほぼ不可能であるからである。
オプション項目に対する記述法の解説については,gnuplotのヘルプを参照のこと。 初期設定により,gsplotコマンドは,行インデクスをx値として,列インデクスをy値として用い,式の各列の値をz値としてプロットする。このインデクスは,1ではなく0からカウントされる。たとえば,
このコマンドは,その行列の行および列から受け入れたxおよびy値を用いて,ランダムな表面をプロットする。
パラメトリックプロットモードがセットされていれば(gset parametric なるコマンドを実行すれば),gsplotは3つの領域におけるラインを定義するx,yおよびzの値として,同時に3つの行列の列を受け取る。そのほかの余分な列は無視され,xとyの値はソートされていると期待される。たとえば, parametricをセットすると,以下のような行列をプロットするという意味になる。
このときrand (5, 30)ではない。
[Command]
[Command]
[Command]
基本的なプロットコマンドに加えて,gnuplotからのコマンドgsetと gshowの全範囲は,replotと同じように利用可能である。
Octave 2.0では,setとshowというコマンド名は,gsetと gshowコマンドに変更された。これは,Octaveの将来のバージョンにおいて,MATLABのグラフィックとGUIコマンドと互換性を待たせるようにするためである(現在のところ,以前のsetとshowコマンドは動作するが,これらのコマンドは,gsetとgshowコマンドを使うように勧める邪魔な警告メッセージを表示する)。
gsetとgshowコマンドは,gnuplotのパラメータをセットしたり表示したりできるようにする。gsetとgshowコマンドに関するさらなる情報については,gnuplotユーザーズガイドにあるset とshowに関する解説を参照せよ(Octaveから実行する代わりに, gnuplotを直接実行しているならば,オンラインでも入手できる)。
replotコマンドは,プロットを強制的に再描画する。これは,プロットについて,タイトルまたは軸ラベルなど何らかの変更を行ったときに役立つ。 replotコマンドは,gplotやgsplotと同じコマンドを受け入れる(データ範囲を除く)。従って,存在するプロットに追加のラインを加えることができる。
たとえば,
これらのコマンドは,プロットを行う端末のタイプを変更し,現在のプロットにタイトルを追加し,以下のグラフを追加する。そして,プロットするデバイスに,新たなプロットを送りつける。この最終ステップは,通常,プロットを更新するために必要である。この標準設定は,反応の遅い端末,あるいはハードコピー出力機器にとっては合理的である。なぜならば,再プロットコマンドで追加のラインを加えるときでさえも, gnuplotは常にプロット全体を再描画するので,軸ラベルの変更程度の少しの更新のたびに,毎回,生成された完全に新しいプロットが欲しいとは思わないはずだからである。
コマンドshgは,何も引数を付けないreplotコマンドを実行することに等しい。
gnuplotを呼び出す前に,プロットデータ中のNaN値は自動的に省略され, Inf値は非常に大きな値へと変換される。
[Built-in Variable]
プロットコマンドによって起動されるプログラムの名前である。初期値は, "gnuplot"である。Installing Octaveを参照せよ。
[Built-in Variable]
もしこの変数の値がゼロでないならば,Ovtaveは,使用しているgnuplotが複数フレームをサポートしていると仮定する(この機能は最近の3.6betaリリースに含められている)。その初期値はconfigureによって決定されるが,この設定が間違っている場合,あるいはgnuplotのインストールを更新したときには,スタートアップスクリプトまたはコマンドラインにて変更することができる。
[Built-in Variable]
[Built-in Variable]
[Built-in Variable]
[Built-in Variable]
[Built-in Variable]
[Built-in Variable]
[Built-in Variable]
[Built-in Variable]