この文書はMicrosoft ExcelファイルからGnuplotのデータファイルを作成する 方法について説明します.この作業は後期授業「モデリング」の人口モデルに 関するレポート課題などにおいて必要となります.
この文書では例として, 総務省統計局Webサイト にて公開されている「我が国の推計人口大正9年〜平成12年 第1表」 (ファイル名: 05k5-1.xls)を用います.このファイルは上記トップページ よりリンクを次の順に辿ることで入手できます.
[人口推計]->[推計結果]->[我が国の推計人口 大正9年〜平成12年]-> [第1表 男女別人口(各年10月1日現在)]
テスト環境:
データを含むExcelファイル(例: 05k5-1.xls)を開く
ここで上の画像のようにファイルの拡張子(.xls)が表示されていない場合は Gnuplotの解説ページ を参照して,拡張子が表示されるように設定する.この設定は後の作業に おいて混乱を避けるために必要となる.
クリック&ドラッグ操作によりシート上の利用するデータのセル範囲 を指定する.
この例では,大正9年(1920)から平成12年(2000)までの総人口の男女計, すなわちセルD11(第D列第11行)からセルD91までのセル範囲を指定している.
指定した範囲上にマウスポインタを置き,右クリックして,出現したメニューの 項目[コピー(C)]をクリックする
アイコン[新規作成]をクリックして,新たなExcelファイルを開く
新たに開いたExcelファイルのシート上のセルA1を右クリックし, 出現したメニューの項目[貼り付け(P)]をクリックする. 結果としてコピーしたセル範囲がシートに貼り付けられる
セルA1の上の列記号[ A ]を右クリックし,出現したメニューの 項目[セルの書式設定(F)...]をクリックする.
出現したウィンドウ[セルの書式設定]上のタブ[表示形式]の中のボックス [分類(C):]の中の項目[数値]をクリックする.
すると,その右側にボックス[負の数の表示形式(N):]が現れるので,その中の項目 [-1234]をクリックする.
データの種類に応じてボックス[小数点以下の桁数(D):]の数値を適切に 選択する.この例ではデータが人口であり,小数点以下の値が含んでいないので, その桁数を0としている.
ウィンドウ[セルの書式設定]上の[ OK ]をクリックする. 結果としてシート上の数値中にあったカンマが消える.
メニューバーの[ファイル(F)]をクリックし,出現したメニューの項目 [名前を付けて保存(A)...]をクリックする.
出現したウィンドウ[名前を付けて保存]上でファイルの保存先が Gnuplotの作業フォルダになるように操作する.この例では作業フォルダ を"C:\modeling"としている.
「作業フォルダ」の意味がわからない場合は Gnuplotの解説ページ を参照し,必要に応じて設定すること.
ボックス[ファイルの種類(T):]中の項目 [テキスト(タブ区切り) (*.txt)]をクリックする.
ファイル名を適切に変更し(例: population.txt),[ 保存 ]ボタンを クリックする.
[選択したファイルの種類は複数のシートを含むブックをサポートしていません。]と 書かれたウィンドウが出現する.データの保存上,問題ないので[ OK ] ボタンをクリックする.
[xxxx.txtには,テキスト(タブ区切り)と互換性のない機能が含まれている可能性 があります.この形式でブックを保存しますか?]と書かれたウィンドウが出現 する.データの保存上,問題ないので[ はい(Y) ]ボタンを クリックする.以上の作業によりファイルが保存される.
デスクトップ上のショートカットなどによりGnuplotを起動する.
pwdコマンドにより,現在の作業フォルダを表示する.
表示された作業フォルダが上記の作成手順でデータファイルを 保存したフォルダと同一であれば,次のplotコマンドにより, 以下のようにグラフが表示される.
plot "xxxx.txt" w lp
ここで"xxxx.txt"はデータファイルの名前である(例: "population.txt").
上記のplotコマンドの入力においてGnuplotがエラーメッセージを 表示した場合は,各メッセージにしたがって次のように対処する.
入力したファイル名が間違っている
--> 正確なファイル名を入力する
指定したファイルが現在の作業フォルダに存在しない
--> Gnuplotの解説ページを参照し,作業フォルダを 設定しなおす.もしくは当該のファイルを現在の作業フォルダへ移動する.
--> 正確なコマンドを入力しなおす
--> データファイルを作成しなおす
--> コマンド行中の"w"と"lp"の間にスペースを入れて, コマンドを再入力する.