nsgraph の使い方

薮 哲郎
初版1999.5.12
最終改訂2023.7.22

1. nsgraph とは何か

nsgraph は gnuplot と同様、データを用意してグラフを書くための コマンドです。グラフを書くためのデータとコマンドを入れたファイルを 用意し、

   $ nsgraph file-name

と実行すると、入力ファイルの内容に従ってグラフを描画します。

マニュアルは nsg3/sgraph.dvi です。 紙に打ち出したい人は dviout で開いてプリントアウトしてください。 マニュアルのうち、命令の一覧表は印刷して机の横に 貼っておくと便利です。

gnuplot に比べると以下のような利点があります。

  1. データとグラフ描画用コマンドを同一のファイルに入れるので、扱いが容易。
  2. 1 枚の紙に複数のグラフを描くことができる。
  3. 動作が機敏で、能率的にグラフ作成が行える。
  4. 作製されるグラフが美しい。軸に付ける数値の位置・センタリングなどにも 細心の注意を払っており、点線も美しい。
  5. データ点を直線で結ぶのみならず、スプライン補間、準エルミート補間、 スプライン平滑化、多項式近似をサポート。
  6. Word, Excel, PowerPoint, Tex ヘの取り込みが可能。

欠点は以下の通りです。

  1. 各々の線にキャプションをつける機能がない。
  2. 日本語が使えない。


2. nsgraph の使い方

2-1. 環境設定

nsgraph でグラフを表示するには、グラフを表すファイル を用意して、次のように打ちます。

   $ nsgraph fname[.ns]

nsgraph の後にファイル名を書きます。拡張子が .ns の 場合は省略可能です。 nsgraph はグラフを X-Window に描画します。 たとえば、以下のように環境変数を設定して下さい。

   $ export XW_SIZE=f1.4
   $ export XW_ORG=x600y10
   $ export XW_BG=gray

環境変数 XW_SIZE は X に開くウィンドーのサイズを指定します。 f のあとに倍率を指定します。 XW_ORG は X に開くウィンドーの左上位置を指定します。 XW_BG は X に開くウィンドーの背景色を指定します。 /usr/X11R6/lib/X11/rgb.txt の中の色か #ff00ff 形式で指定します。gray がお勧めです。

以上の設定は各自の .bashrc に書いておけば良いでしょう。

2-2. グラフファイルの例

-------- ここから --------
#  ここはコメント
1 1
2 2
3 1
a
gl
gd
c
-------- ここまで --------

まずは、上の内容をファイルに入れ、そのファイルを nsgraph の 引数として指定してグラフを描いてみて下さい。

ファイルの内容について説明します。 # 以降はコメントを表します。行の途中からコメントを書くこともできます。 nsgraph はファイルを 1 行ずつ読み込んでいきます。そして、 次のように動作します。

数字だけの行はデータであると見なされます。 1 つめの数字が x 軸の値、2 つめの数字が y 軸の値を表します。 ですから、最初の 3 行で (1,1) (2,2) (3,1) という 3 つの 座標軸上の点が蓄積されます。

結局、下のようなグラフが作成されます。

次に、もう少し細かい指定を入れてみましょう。

-------- ここから --------
#
1 1
2 2
3 1
wx 0 4
wy 0 2.5
x X-Axis $alpha$ $beta$
y Y-Axis$sup{upp}$sub{low}
a
k
gs
sd 135
gd
c

1  0.5
2  1
3  2
sc 2
sw 3
sl 0
gl
sd 130
gd
c
-------- ここまで --------

使われている命令について説明します。

グラフは以下のようになります。

nsgraph は (x,y1,y2,y3,.....) 形式のデータを扱うこともできます。

-------- ここから --------
1 1 2
2 2 3
3 1 4
a
k

gs 1 2
sd 130
gd

sc 4
gs 1 3
sd 135
gd 1 3
c
-------- ここまで --------

この例では、gs 命令、gd 命令の後に数字が 2 つ 付属しています。gs 1 3 の意味は、1 列目の データを x 軸の値、3 列目のデータを y 軸の 値として描くという意味です。 グラフは以下のようになります。

nsgraph はさらに高度な機能も持っています。 より詳しいことは、マニュアルをご覧ください。


3. グラフファイル graph.g の使い方

nsgraph でグラフを描くと、X-Window に描画されると同時に グラフの内容を表すファイル graph.g が カレントディレクトリに作製されます。 グラフの描画が終了すると、プリンターから出力するか否かを 聞いてきますので、y か n を入力します。

graph.g にはグラフの情報が数値で表されています。 フォーマットの詳細はこちらの 10. 節を御覧下さい。 graph.g は次のように使います。

  1. $ replot
  2. $ xy2svg graph.g > graph.svg
  3. $ xy2ps graph.g | lpr
  4. $ xy2ps -t graph.g > graph.ps
  5. MS-Windows 上で動作する xy2clip を使ってクリップボードへ貼り付け

xy2ps, xy2svg は引数なしで実行すると、 簡単なオプションの説明が表示されます。 こちらの 5. 節にもう少し詳しい 説明があります。


4. より高度な使い方

nsgraph は環境変数の設定により動作を変えることが出来ます。

シェルスクリプトから nsgraph を連続して起動して 沢山の図を一気に出力したい場合があります。 このような場合は、

   $ export GRAPH_OUT=XnPy

のように設定して下さい。Xn は X-Window には出力しない ことを表し、Py は必ずプリンターから出力することを表します。 デフォルトは XyPq です。 環境変数の詳しい説明は こちらの 4.4 を御覧下さい。

その他にも

などが可能です。