Windows上のgnuplotについて私が気づいたことをメモをしておきます。 gnuplot掲示板(東京電機大学 松田先生が開いておられます。すばらしいページです。) などのやりとりや普段使っているなかでにまとめておいたほうが いいなと思ったこと気が向いたらまとめます。 自分の備忘録程度のものですが,こんなんでもお役に立てたら幸いです。
共用サーバーを大学外にレンタルし,ページを移転しました。(08/09/07)
http://www.tatsuromatsuoka.com/gnuplot/Jpn/gnuplot_memo.html#080330
のように日付ごとに"070612"のようなリンクタグを埋め込んであります。特定の日付のメモにリンクを貼りたいときにお使いください。
古い記事にリンクはリンク切れのものもあります。ご容赦ください 特にこのページに関してリンクの許可は要りません。ただ,やはりコメントをいただけると幸いです。 注意 gnuplot 4.4.0 rc-1 の独自ビルドの配布 sourceforge 上のCygwin 版,MinGW 版は,対応しているターミナルが限定されているため,Cygwin-1.7とMinGWで
独自ビルドのバイナリを配布することにしました。
ともに,pngcairo/pdfcairo,lua/tikz ターミナルをサポートしています。
MinGW版では,wxt のサポートもしております。
また,sourceforge 上にはバイナリにはない,DJGPP のバイナリもおいています。
リンクリストの gnuplot 4.5 (cvs) cygwin binaries prepared by gcc-4.x.xまたは
File list of gnuplot 4.5 for Windows からアクセスしてください。(ページタイトルを少し変更しています。)
cvs 版でしかなかった最新の gnuplot の機能をほぼフルに使えますので,お試しください。
gnuplot 4.5 (CVS) Cygwin-1.7 版とMinGW 版で lua ターミナルをサポートしました 次の正式版であるver.4.4 でlua ターミナル対応ということで,ユーザーからのリクエストもあり,
gnuplot 4.5 (CVS) Cygwin-1.7 版とMinGW 版で lua ターミナルをサポートしました。
リンクリストの gnuplot 4.5 (cvs) cygwin binaries prepared by gcc-4.x.xまたは
File list of gnuplot 4.5 for Windows からアクセスしてください。
ただし私は,latex ユーザーではないので簡単なテストをして latex らしきコードがでるなということまでしか
確認していません。
gnuplot-4.4.0-rc1がでました 次の正式版であるver.4.4 のプレリースというべき gnuplot-4.4.0-rc1がでました。
(ちなみに rc とは, release candidate のことです。)
gnuplot の download サイトから
ダウンロードできます。リンクリストも修正してあります。
4.4.0-rc1 の Windows 版はバイナリが用意されていて,gp440rc1_win.zip でネイティブ版(gp440rc1win32.zip),
Cygwin 版(gp440rc1win32x11.zip)が含まれています。詳しいことは,パッケージに含まれる NEWS をご覧ください。
png terminalでの日本語出力 Gnuplot Q&A 掲示板で「pngへの出力で日本語が文字化けする」の話題がでました。
utf-8を用いる回答などが出されましたが,角藤さんバイナリ(リンクリスト参照)
を使えば,shift-jisで日本語がでることが分かりました。
今時間がないので私が書いた回答へのリンクを貼ります。
http://ayapin.film.s.dendai.ac.jp/cgi-bin/trees.cgi?log=&v=2146&e=res&lp=2146&st=0
CVS 版のバージョンが4.5になりました 次の公式版 4.4 の動きが出てきたのにむけて一足早く CVS 版のバージョンが4.5になりました。
使用に関してはなにもかわらないのですが,私のCVS 版バイナリファイル (MinGW, DJGPP, Cygwin)の配布の
バージョンファイル名が 角藤さん版 Windows 用 CVS 版バイナリーのミラーのアドレスが変更されているようです 最近なんかつながらないなあと思っていましたがミラーのアドレスが変更されているようです。 gnuplot 4.3 (CVS) Windows 版で wxt ターミナルを使用可能とする差分パッケージを配布開始しました wxt ターミナルは,wxWidgetを利用した windows,Unix, MacOSX などマルチプラットフォームで利用できる
高機能ターミナルです。スピード面ではおとるもの Windows ターミナルではできない,マルチウィンドウの
機能などあり,描画も非常に美しいものです。Windows ターミナルで実現していない,
mouse ローラによるズームインアウトとコントロールキーとシフトキーで組み合わせた描画範囲の可変などが
使用できるなどで魅力的なターミナルです。
(マウスローラーによるズーム機能が windows ターミナルでは利用できないのは,バグなのかもしれません。)
これまで,wxt ターミナルを組み込んだ gnuplot バイナリがコンソールモード版で
起動しないという問題を解決できなかったのですが,
Benjamin Lindner さんの助言により問題が解決しました。
欠点はwxWidgetのライブラリなど追加ライブラリを利用するため,
パッケージのサイズが大きくなることです。
したがって,これまで通り wxt ターミナルを組み込まないものも通常の windows 版として残しています。
ただし,利用するライブラリは通常の windows 版にのものに加える形になるため,
サーバー上でのディスクスペースの節約のため,wxt ターミナル対応版は,通常の windows 版への差分パッケージとなっています。
配布ファイル名は,gp43-winbin-wxt-diff.zip でこのなかの gnuplot フォルダーの中身を
通常配布版である gp43-winbin.zip の gnuplot フォルダーにマージしてください。
ダウンロードはリンクリスト・File list of gnuplot 4.3 for Window
からダウンロードしてください。
なお,wxt ターミナル対応版はデフォールトのターミナルは wxt ターミナルになります。
これをデフォールトのターミナルを windows にしたいときは,環境変数 環境変数の設定については,「環境変数 windows XP」,「環境変数 windows Vista」で検索してください。
バッチファイルや WSH などで環境変数を使いたい方は,「環境変数 バッチファイル」,「環境変数 WSH」などで検索するといいでしょう。
gnuplot 4.3 (CVS) Cygwin-1.7 版が pngcairo と pdfcairo ターミナルに対応しました pngcairo と pdfcairo ターミナル の構築に必要なライブラリが cygwin-1.5 では古いものだったため,
これまでは,pngcairo と pdfcairo ターミナルに対応しておりませんでした。このたび cygwin-1.7 でのみ
ライブラリが更新されたため,自動的に対応することができました。
cygwin-1.7 は,まだ,ベータ版ではありますが,使用した感じではかなり使えます。
octave など,cygwin-1.7 のみ新しいリリースがでるものが,最近多くなっているので
pngcairo と pdfcairo ターミナルを cygwin 上で使いたいかたは,cygwin-1.7 の使用を考慮なされてはどうかと思います。
ダウンロードはリンクリスト・gnuplot 4.3 (cvs) cygwin binaries prepared by gcc-4.x.x
からダウンロードしてください。
gnuplot4.2.6がでました 4.2 シリーズがでは最後のリリースです。これ以降開発版(4.3,cvs)の作業は,
次の公式版 4.4 のリリースに向けて動き出すようです。
http://sourceforge.net/projects/gnuplot/files/
変更の詳細等のは上記の announce.4.2.6 を読んでください。
gnuplot 4.3 (CVS) Windows 版を pngcairo と pdfcairo ターミナルに対応させました Benjamin Lindner さんが wxt ターミナルに対応しなくても pngcairo と pdfcairo ターミナル対応のバイナリを生成
するような makefile (makefile.mgw) を書いてくださったのでそれに対応して pngcairo と pdfcairo ターミナルに
対応した,cvs 版の gnuplotを配布することにしました。
ダウンロードはリンクリスト・File list of gnuplot 4.3 for Window
からダウンロードしてください。
cygwin 用 gnuplot 4.3 (CVS) に Cygwin-1.7 用のものをアップロードしました 最新版 Cygwin 版 Octave が,次の Cygwin のメジャーバージョンのベータ版である cygwin-1.7 のみでの配布に
なりました。Cygwin-1.7 はベータ版とはいえかなり安定してきています。したがって,これから需要がでてくるのでは
と思い, Cygwin-1.7 のgcc-4 (gcc-4.3.2-2)でビルドした,cvs 版の gnuplotを配布することにしました。
それに伴い,パッケージスタイルを,現在 Petre さんが配布されている形式に近いものだけにしました。
ダウンロードはリンクリスト・gnuplot 4.3 (cvs) cygwin binaries prepared by gcc-4.x.x
からダウンロードしてください。
gnuplot4.2.5が出てます^^; ソースだけだとおもったら,ちゃんとバイナリもありますね。詳しいことは以下を。
ダウンロードはリンクリスト・gnuplot のV4.2.5のdownloadから。
gnuplotのsvgファイルをinkscapeでみるためには svg (Scalable Vector Graphics) ファイルは,W3Cでオープン標準として勧告されています。
また,inkscape というソフトが svg を操作できるフリーの Draw ソフトとして注目されています。
gnuplotも svg terminal で svg 形式のファイル出力が現在可能です。
ただし,現在の inkscape 0.46 では,gnuplot での svg 出力が正しく表示されません。
inkscape の次のバージョンでこの問題は直るそうですが,現在の inkscape gnuplot での svg 出力を正しく出力する
方法を紹介しているページがあることが分かりました。
参考:inkscape ホームページ
Windows Vista上でのwindows版でのhelpファイルの表示について 学生のVistaのコンピューターにgunplotをインストールしたら,wgnuplot.hlpが表示されない
ことがわかりました。.hlpのhelpファイルは古い形式なので,Vistaでは標準でサポートされていないようです。
このことをgnuplot MLに投稿しましたところ,竹のさんよりメールが投稿され,Microsoftのホームページから
Vista上でhlp形式のhelpを表示させるプログラムが配布されていることがわかりました。
(竹のさんありがとうございます。m(__)m)
以下からダウンロードできるようです。
Windows Vista 用 Windows ヘルプ プログラム (WinHlp32.exe)
gcc-4.3.2でビルドしたdjgpp版のgnuplotを配布開始しました File list of gnuplot 4.3 for Windows
最適化性能の優れるgcc 4.3.2を用い
gcc-4.3.0-dw2(mingw)でビルドしたwindows Native 版のgnuplotを配布開始しました File list of gnuplot 4.3 for Windows
最適化性能の優れるgcc 4.3.0-dw2 (mingw)を,用い
gnuplotのpostscript (ps)出力のwindowsソフトへのとりこみ(再)(要 cygwin)
ずいぶん,昔にこの話題についてのべた(04/12/22,05/02/05)
が,そのころは,fig2devのコマンドが生成するemfファイルが Microsoft office で読めないということでcgmに変換していた。
その後,しばらくは,gnuplotで cgm term をつかっていた。
最近 Kingsoft office 2007 というソフトを家では使うようになったが,
cgm ファイルが読めないので苦慮していた。
しかし,最近の fig2devで生成した emf ファイルは,Microsoft office,Kingsoft office 2007,
open office などで読めることがわかった。
fig2devが今のところ cygwin 上でしか動かないため,cygwin で pstoedit と fig2dev (パッケージ名 transfig)
をそろえるほうがよい。関連してインストールすべきソフトは,cygwin setup での選択時に自動的に選択されるようである。
わたしは,最近は cygwin 版 gnuplot を使用しているが,gnuplot 自体は windows 版でもよい。
ただし,cygwinの /bin にパス(Path)を通しておく必要がある。
cygwin は以下から導入可能である。
から cygwin setup.exe をダウンロードしたあと,setup.exeを起動した後,default に加えて,
category graphicsのpstoedit と transfig を選択するとよい。
実行は,gnuplot の prompt の上で
postscript terminal のグラフが簡単に windows 上でベクトルフォーマットで扱えるのはありがたい。
cygwin には,批判も多いが,Unix のツールを windows 上で手軽に扱える点は非常にありがたい。
最近は,cpuパワーやHDDの大容量化に加え,cygwin 自身やパッケージソフトの完成度が
かなり高まってきており,gnuplot の機能をフルに使うためにも,導入に一考の価値はあると思っている。
Windows版コンソールモードのgnuplot 4.3 (CVS)の名称がgnuplotと決まり,アナウンスがありました
Windows版コンソールモードのgnuplot 4.3 (CVS)の名称は,11/16のメモにも書いたとおり,HansさんとPetrさんの間で食い違いがあったのですが,最終的にはHansさんの意見が通ったようです。
http://www.nabble.com/names-of-gnuplot-Win32-binaries-to20437476.html pgnuplotにしておけばこれまでのWindows上のプログラムからのgnuplotをつかうとき,
互換性が保ちやすいというのがPetrさんの意見だったのですが,
Hansさんはすべてのプラットフォームでコンソール版のgnuplotは,
gnuplotであるべきでそのほうがすっきりするという考えでした。
互換性と統一性の問題はつき物ですが,これで決まったことはよかったことです。
http://gnuplot.sourceforge.net/development/binaries/
から"gp43-Nov21_2008-winbin.zip"でバイナリ入手可能です。
角藤さんのバイナリもそのうちこの形式で出ると思います。
Windows版コンソールモードのgnuplot 4.3 (CVS)がでました。
Michaelさん,Benjaminさん,Petr さんのご尽力により,Windows版コンソールモードのgnuplot 4.3 (CVS)がでました。
パイプ処理には,通常のpgnuplot+wgnuplotやwgnuplot_pipesより便利です。
現在,リンクリストに載せた角藤さんのCVSバイナリで入手可能で,
pguplotのreplaceとなっています。
しかし,この名前にオリジナルのpgnuplotの作者であるHans-Bernardさんは,同意していません。
彼は,名称はgnuplotとすべきだといっています。したがって,現在の名称は変更になる可能性も考えられます。
gnuplot 4.2.4 emf terminal ehnaced の問題点
enhaced textを使うと表示されない場合があります。Microsoft のViewerや
Microsoft Office 2003では,表示がされません。
(Office 2007はもっていないので分かりません。)
Open Officeでは表示されます。ただし,Power Pointで強引にグループ化を解除すると表示されます。
ですのでそこを了解の上で使用すればいいと思います。
詳しくは,以下を見てください。
1. gnuplot 4.2.4がでました
http://sourceforge.net/project/showfiles.php?group_id=2055&package_id=1996&release_id=628168
Windowsユーザーとって大きいのは,emf terminalでenhancedモードがサポートされたことです。
emf ファイルは,Windows標準のグラフィックフォーマットであり,ベクトルデータとして保存されるため便利です。
その他の点については,リリースノートを読んでください。
2. Octave3.0.2+Forge20080831 Mingw版 にコンソールモードのgnuplot 4.3 (CVS)が添付されています
Mingw版のOctave3.0.2+Forge20080831 バイナリーがリリースされました。
http://sourceforge.net/project/showfiles.php?group_id=2888
このoctaveに添付されたpgnuplot.exeはコンソールモードのgnuplotです。
gnuplotは,4.3 (CVS 2008-08-08)です。
パイプ処理には,通常のpgnuplot+wgnuplotやwgnuplot_pipesより便利です。
いったんインストールしてbinフォルダから以下のファイルだけをコピーし,アンインストールすれば
Octaveユーザー以外でも使用できるので試して見られるとよいでしょう。
3. cygwin用のgnuplot cvs 版 の新しいバイナリ(2008-10-02)をアップロードしました
http://www.tatsuromatsuoka.com/gnuplot/Eng/cygbin/
cygwin用のgnuplot cvs 版の置き場所を変え,新しいバイナリをアップロードしました gnuplot 4.3 (cvs) cygwin binaries prepared by gcc-4.x.x
最適化性能の優れるgcc 4.x.x (現在は,4.3.2)を,用い
個人用のサーバーをレンタルしたのでそちらにメモを移転しました。
http://www.tatsuromatsuoka.com/gnuplot/Jpn/gnuplot_memo.html 08/03/30 08/03/18 08/02/26 07/12/18 Octave Cygwin版のためですが,Cygwin版gnuplot 4.3 (CVS) 版のバイナリー(を作成し公開していますが,これを更新しました。(07/12/10版) 2.Octave MSVC版に付属のwgnuplot, pgnuplotについて 3.DJGPPのgnuplotについて 07/12/10 Octave Cygwin版のためですが,Cygwin版gnuplot 4.3 (CVS) 版のバイナリー(を作成し公開していますが,これを更新しました。 07/09/15 Octave Cygwin版のためですが,Cygwin版gnuplot 4.3 (CVS) 版のバイナリー(07/09/01版)を作成し公開しています。 07/08/16 Octave Cygwin版のためですが,Cygwin版gnuplot 4.3 (CVS) 版のバイナリー(07/08/02版)を作成し公開しています。 07/07/19(07/08/16に一部修正) ある方に頼まれてfit multi-branchの使い方を聞かれたので簡単なdemoを作って見ました。 07/03/15 Gnuplot Q&A 掲示板に掲載されていますが,ついにgnuplot-4.2がリリースされました。 06/03/20 竹のさんのページに紹介されていますが 05/09/08 2005-08-04以降のCVS版(V4.1)からwgnuplot.iniが保存されるフォルダーがwindowsのインストールフォルダから 05/04/02 Windows上で動くgnuplotについて現在まで使用して感じたことをまとめる。 Windows上で動くgnuplotはわたしの知る限り現在3種類ある。 それぞれに特徴があり,どれを使うかは好みによる。 1.wgnuplot などは使用できない。次のようにいったんファイルを作成する必要がある。 !awk -f awkscript.awk > tmp.txt gnuplot test.plt 2> err.txt で実現できたり(「2>」はNT系のコマンドプロンプトでの標準エラー出力のリダイレクトである。) また plot '< awk -f awkscript.awk' なども使える。 awkやUNIXのシェルスクリプトは無縁だという人はwgnuplotがいいだろう。 パワフルなマシン持っていて普段はwindowsを使わねばならぬがUNIX環境にも興味があり,スクリプトをバリバリに使ったり,最新の機能をいち早く使いたいというひとなら,Cygwin版をつかうのがよいであろう。 そうでなければ少々の不便を我慢してもwgnuplotを使うのがいいだろう。中程度のマシンなら速度の要する画面表示の用途にwgnuplotをつかって,バッチ処理にcygwin版を使うなど使い分けるのもいいかもしれない。 DJGPP版はV4.00で限定だかバッチ処理に威力を発揮する。ハードディスクなどの資源の乏しいマシンでバッチ処理をやりたい人はV4.00限定ならばwgnuplotと併用してつかうと効果的であろう。 05/02/19 Gnuplot掲示板720で ということ書いたが 上のスクリプトをAppActivateSendKeys.jsとしてpathの通ったフォルダーに保存する。 のようにgnuplotスクリプトでplotコマンドのあとにいれればよい。 とできる。上の場合プロセスIDを得ることが必要である。下のjscriptは,wshのExecメソッドを利用してこのスクリプトからWindowsアプリケーションを起動し,そのプロセスIDをこのスクリプトの終了の返り値とするものである。バッチファイルなどではerrorlevelでこの値がとれるので組み合わせてうまく使えばいろいろな応用が利くであろう。(未確認だがawkやCのsystemコマンドでも使えると思う。) WSHはつい最近触り始めたが非常に強力なツールであり,これを利用すればwgnuplotに対していろいろなことができるかもしれない。 05/02/05(05/02/07一部修正) 1. 8進文字コード表 awkスクリプト。生成されるgnuplotスクリプトをリダイレクトでファイル化してgnuplotでロードすればepsができる。 2. pstoedit のwmf, emf変換での曲線のがたつきについて 04/12/22に書いたがpstoedit -f emf test.ps test.emfとすれば,曲線ががたつくと書いた 。 05/01/26( 1/31 修正。) Gnuplot Q&A 掲示板716からで話題になっている件ですが pgnuplotでの日本語の使用について 05/01/19 Gnuplot Q&A 掲示板では主催者の松田さんやおなじみ竹のさんなどは, 04/12/22(04/12/24 Xfree86とX11R6の記述を修正) リンクリスト(10/01/12 更新)
E-mail : tmacchant3_at_yahoo.co.jp (_at_=@)
ここのページの記述のツールなどの動作保証はできません。自己責任でお使いください。
・メモリスト (メモのインデックスです。)
・リンクリスト(参考になるリンクをまとめました。これだけあれば十分^^;?)(10/01/12 更新)
gp43 ... から,gp45 ... に変更しています。
リンクリストも更新しました。
リンクリストを更新しましたのでアクセスはそちらからどうぞ
角藤さん自体のページのアドレスは,変更はないようです。
GNUTERM を
windowsにセットしてください。
CFLAGS='-O3 -fomit-frame-pointer' でビルドしているのでパフォーマンスはいいと思います。
gdライブラリをサポートしていない反面,コンパクトです。svgやpostscript term 用にはそれなりの用途
があると思います。サイズはコンパクトです。
CFLAGS='-O3' でビルドしているのでパフォーマンスはいいと思います。
角藤さんのgnuplotと違いpdf termをサポートしていません。(本家のgnuplotと同じ。)
サイズはコンパクトです。スピードは比較していません。
!pstoedit -f fig sin.eps tmp.fig ; fig2dev -L emf tmp.fig sin.emf ; rm tmp.fig
のようにすればよい。上の例では,sin.eps を sin.emf にtmp.fig を一時ファイルとして仲介に使って変換している。
のPetr Mikulik Nov 22, 2008; 07:30pm の記事をご覧ください。
pgnuplot.exe
wgnuplot.mnu
wgnuplot.hlp
gd.dll
fontconfig.dll
expat.dll
freetype-6.dll
zlib1.dll
libgcc_tdm_dw2_1.dll
jpeg.dll
png12.dll
CFLAGS='-O3 -fomit-frame-pointer' でビルドしているのでパフォーマンスはかなりいいと思います。
Window版とCygwin版のgnuplot 4.3 (CVS)のバイナリ
http://gnuplot.sourceforge.net/development/binaries/
Cygwin版gnuplot 4,2.3がでました
gnuplot 4,2.3がでました。上記リンクリストからダウンロードしてください。
新機能はそれほどないのですが,手の行き届いた修正がなされているようなのでバージョンアップをお勧めします。
Petr Mikulikさんが,Windows, OS/2, DJGPPのバイナリを用意してくれました
(xxxはプラットフォームの名前mingwならmgw)を改定されたのを機会に
Petr MikulikさんがWindows, OS/2, DJGPPのバイナリを用意してくれました。
Windows版では,パイプからのデータでplot '-'を利用するデータに対するmouse zoomingができるように
なっています。
DJGPP版は,SVGターミナルが利用できないバグがフィックスされています。
http://gnuplot.sourceforge.net/development/binaries/
1.Cygwin版gnuplot 4.3 (CVS) 版のバイナリーを更新しました
http://www.geocities.jp/tmacchant/
にいき(Octave 2.9.xx (xxはOctaveのバージョン番号) Cygwin testing binaries のページ),ここのAdditional files and comments.のPatches and gnuplot 4.3 etc.をクリックしてください。
開発された特別のwgunplotとpgnuplotが用意されています。Octaveユーザーだけでなく,一般のかたも使えます。
wxt,Carioターミナルなどに対応してますので,結構いいと思います。
pgnuplotは,通常配布のpgnuplotのようなwgnuplotへのラッパーではなく,Windowsコンソールで動くWindows版のgnuplotです。
HBB(Hans-Bernhard Bröker)によるとpもwつかないgnuplotにすべきだといわれています。
ここら辺はこのOctave MSVC版用のgnuplotを作成されたMichaelさんの考えもあるので,どちらが正しいかはいえません。
とにかくこのpgnuplotは,pipeの取り扱いがUNUX版のようにできるので,Octave Userならずとも,awk, perl,Cなどから
gnuplotを使うとき便利そうです。
ps, emf, cgm, svg用にはWindows上でもなかなか使えます。私は,USBにawkと一緒にいれて持ち歩いています。
ただし,画面表示は一応できますが,ちょっと.....という感じです。
ただし,pngは使えません。(djgppで使えるgdがないからでしょう。)
http://takeno.iee.niit.ac.jp/%7Efoo/gp-jman/gp-jman.html#manjp-files
にいき,Shift-JIS用のgnuplot-ja.gih.zip ををおとして解凍し,gnuplot.gihとリネームして保存し
英語のgnuplot.gihと置き換えれば,日本語Helpが使えます。(竹のさんがShift-JIS用のgnuplot-ja.gih.zip を作成してくれました。感謝!)
英語版はgnuplot-us.gihとでもしてとっておきましょう。
Cygwin版gnuplot 4.3 (CVS) 版のバイナリーを更新しました
http://www.geocities.jp/tmacchant/
にいき(Octave 2.9.xx (xxはOctaveのバージョン番号) Cygwin testing binaries のページ),ここのAdditional files and comments.のPatches and gnuplot 4.3 etc.をクリックしてください。
Cygwin版gnuplot 4.3 (CVS) 版のバイナリーを公開場所を変更してます
http://www.geocities.jp/tmacchant/
にいき(Octave 2.9.13 Cygwin testing binaries のページ),ここのAdditional files and comments.のPatches and gnuplot 4.3 etc.をクリックしてください。
Cygwin版gnuplot 4.3 (CVS) 版のバイナリーを公開しています
ビルドは,gcc-4.2.1をビルドしそれを使ってビルドしました。
gcc-4.x.xは最適化が改良されているとのことで,実測したわけではありませんが今までのgnuplotより動作が軽く感じます。
Cygwin版は,動作が重いと思っていましたが,それをほとんど感じなくなりました。
http://www.geocities.jp/tmacchant2/
そこのReadme(英語)にありますが,/usr/localに,gnuplot4.3.cygwin.tar.bz2をおき,
tar xvfjk gnuplot4.3.cygwin.tar.bz2
で展開してください。/usr/local/gnuplot4.3 に展開されます。場所を変えることはできません。
(環境変数を適当に設定すればできそうですがそこまでよくわかりません。)
ホームディレクトリの .bashrc に
export PATH=/usr/local/gnuplot4.3/bin:$PATH
を加えてください。
fit multi-branchの例
すでに例はfit.demにあるのですが,日本人のために日本語で作成して見ました。
#乱数を用いて擬似データの作成
f1(x)=a1*exp(-x/tau1)+a2*(-x/tau2)
f2(x)=a1*exp(-x/tau1)+a3*(-x/tau2)
f3(x)=a2*exp(-x/tau1)+a3*(-x/tau2)
f(x,y) = (y==0) ? f1(x) : (y==1) ? f2(x) : f3(x)
a1=1
a2=2
a3=1.5
tau1=1
tau2=2
set xrange [0:5]
plot f1(x), f2(x), f3(x)
set table
set out 'f1.dat'
plot f1(x)*(1+0.02*rand(0)-0.05)
set out
set out 'f2.dat'
plot f2(x)*(1+0.02*rand(0)-0.05)
set out
set out 'f3.dat'
plot f3(x)*(1+0.02*(rand(0)-0.5))
set out
unset table
# 空行ファイルの作成 空行を2行追加し,Branchした擬似3Dデータにする
set print 'lf.txt'
print ''; print ''
set print
! type f1.dat > f123.dat
! type lf.txt >> f123.dat
! type f2.dat >> f123.dat
! type lf.txt >> f123.dat
! type f3.dat >> f123.dat
# 確認1
plot 'f123.dat' u 1:2, f(x,0), f(x,1), f(x,2)
pause -1 '最初のデータ'
#初期値を少し振って見る
a1=1+0.1
a2=2-0.1
a3=1.5+0.1
tau1=1-0.1
tau2=2+0.2
# 確認2
plot 'f123.dat' u 1:2, f(x,0), f(x,1), f(x,2)
pause -1 '初期値を少し振ってみた'
# fit
fit f(x,y) 'f123.dat' using 1:-2:2:(1) via a1, a2, a3, tau1, tau2
set title 'Fitted Results'
plot 'f123.dat' u 1:2, f(x,0), f(x,1), f(x,2)
fitのusingについては1:-2:2:(1),helpにはy列は-1になっていますが,
空行を2行あけた場合は(<-ここを追加。)demoにあるように-2にすべきようです。
また,Unixでは,typeをcatにしてください。
gnuplot-4.2がリリースされました
WIndowsネイティブ版,Cygwin版も出ています。
詳しいことはGnuplot Q&A 掲示板の竹のさんの解説をみてください。 ここ<-をクリック
また,日本語化キットは,「竹のさんのMS-Windows 用の gnuplot の日本語化キット」
ページからDownloadしてください。 ここ<-をクリック
windows TerminalにEnhanced Textがサポートされました。
wgnuplotのCVS版にenhancedモードがサポートされました。
上付き,下付き,ギリシャ文字などが書けるようになります。
最新の角藤さんバイナリを上記リンクなどから手に入れて
set term win enh
set title '{/Symbol=18 \362@_{/=9.6 0}^{/=12 x}} \
{/Helvetica e^{-{/Symbol m}^2/2} d}{/Symbol m}'
plot sin(x)
としてテストしてみるとちゃんと数式がかけました。
ただし,現時点ではクリップボードを経由してPower Pointなどに貼る場合,
enhanced meta fileなどのベクトルデータとして貼るとフォントの大きさの変更が反映されないようです。
画像として貼り付ける場合は,イメージそのままとなるようです。
wgnuplot.iniの保存フォルダーの変更について
各ユーザーのapplication dataフォルダに変更されました。ファイルの読み書きの権限の問題を解消するためです。
したがって, 04/12/27の記事のようにwgnuplot.iniを書き換えて使用する場合には注意が必要です。
各ユーザーのapplication dataフォルダは環境変数appdataにsetされていますのでこれを利用して
04/12/27の記事
のバッチファイルを書き直しました。
@echo off
rem ******* バッチファイルの例 *********
rem 2005-08-04以降のcvs版(Ver4.1)ではinidirはappdataにsetすること
rem それ以前ではinidirはwindirにsetすること
rem set inidir=%windir%
set inidir=%appdata%
copy "%inidir%\wgnuplot.ini" wgnuplot.ini.bak > nul
copy w1.ini "%inidir%\wgnuplot.ini" > nul
rem 念のためダミーファイルを消しておく。
del temp2.txt > nul
start wgnuplot test.plt -
rem ダミーファイルができるまでまってプロット完了を知る。
:loop
if not exist temp2.txt goto loop
rem ダミーファイルを消しておく。
del temp2.txt > nul
copy w2.ini "%inidir%\wgnuplot.ini" > nul
pause
start wgnuplot -persist test.plt
rem ダミーファイルができるまでまってプロット完了を知る。
:loop2
if not exist temp2.txt goto loop2
rem ダミーファイルを消しておく。
del temp2.txt > nul
copy wgnuplot.ini.bak "%inidir%\wgnuplot.ini" > nul
Windows上で動くgnuplotについて
(これを書くにあたってリンクリストを更新しておいた。)
1.windowsのネイティブ環境で動くwgnuplot
2.Linuxの環境をエミュレートするCygwinのもとで動くgnuplot
3.DOS
Extenderの32bit環境で動くDJGPP版gnuplot
これはWindows上の標準であり,動作も軽い。対話モードでは,特に不便を感じない。ただし,バッチモードで動かすとエラーがあると落ちてしまう,パイプがpgnuplotで実現され一方通行のみであること, 「plot
'< awk -f
awkscript.awk' 」などの使用がwgnuplot_pipesという別のバイナリーでしか実現しないなどのいくつかの難点を抱えている。これらにより,Unixユーザーが作成されたawkやシェルスクリプトを用いた便利な道具などを使うとき,それなりに書き直す必要があり,ある程度の知識が要求される。
また,角藤さんが随時CVS版バイナリを作成してUP
LOADされるので(リンクリスト参照),比較的最新の環境を自らビルドせずに体験できるのは初心者にとって利点である。ただし,角藤さん版バイナリにはwgnuplot_pipesがなく
plot '< awk -f awkscript.awk'
plot 'tmp.txt'
2.Cygwin版gnuplot
これはCygwinのもとで動く。(Cygwinについての詳細はhttp://sohda.net/cygwin/
)
Cygwin
インストーラーを用いるとV4.00を簡単にインストールできる。(要X11環境)X11terminalで速度の面を除けば,Unixと同等の環境が実現できている(はず)。Celeron
2GHz memory
512MBのわがマシン環境では,X11モードでの3D描画のマウスによる回転が重く感じられる。(2Dではあまり不満はない。)しかし,熱暴走のため結局,使用を断念したHTペンティアムでは3Dのマウス回転がかなりすいすい動いた。よって環境によってはX11terminal環境も十分実用になる。(Unix上でgnuplotさわったことがないので不明だがUnix環境下ではgnuplotは軽いソフトのはずので,こんなにはマシンスペックは要求しないはず。)
以上にようにマシンスペックを要求するCygwin版であるが,魅力は3つある。
ひとつは,win terminalよりX11
terminalの機能がかなり上であることである。(Enhanceテキスト環境をサポートしている。起動画面の初期位置の設定が楽。など詳しくは竹のさんのページを参照。)
つぎにCygwin環境でUnixユーザーが作成されたawkやシェルスクリプトを駆使したツールなどがほぼそのまま使えることである。バッチ処理中心ならX11
terminalが重さがあまり気にならなくなるのでバッチ重視ならマシンスペックはさほど高くなくてもよい。
速度の要する画面表示はwgnuplot,バッチ処理はcygwin版という使い方もあるだろう。
もうひとつは,Cygwinの開発環境を整えれば,簡単に最新のCVS版が使えることである。gnuplotホームページに記載された方法で行えば最新のCVS版のビルドは容易であり,最新の機能をいち早く試してみることができる。(05/04/02現在まだ角藤さんWgnuplotバイナリでは搭載されていないアニメーションgifの作成が可能であった。(gnuplot掲示板844からの記事))
最大の欠点は当然であるが,Cygwinが必要なこと。もし,GnuplotだけのためにCygwinをいれるのであれば,ハードディスク資源の少ないマシンにとってはしんどいことである。(gnuplotの魅力のひとつである少ないディスクスペースで動くという利点がなくなる。)
3.DJGPP版gnuplot
XPや2000などでは問題なく動いた。NTや9x系では,ロングファイルネームなどに制限があるかも。(未確認)
XPや2000などではフルスクリーンモードでVGAでしかグラフが描画ができず,マウスもだめpm3dもだめである。なにもとりえがなさそうであるが,ファイルに出力するterminalなら普通に使える。pipeも普通に使えるのでバッチモードでwgnuplotの補助としてつかうのなら十分に使える。
wgnuplotでは不可能なエラーなどgnuplotの吐き出すメッセージのファイル化が
また,バイナリも小さい。したがってバッチで使用をするときにwgnuplotの欠点を補う目的で使用するのがよいだろう。
ただし,v4.00のバイナリがあるもののCVS版バイナリをビルドして公開しているサイトは私が探した限りみつからない。(誰か知っていたらgnuplot掲示板に投稿してください。)
DJGPPでのCVS版のビルドに関しては,グラフィック関係のライブラリなどのリンクが難しく,わたしの力量ではいまだにフルスペックのビルドに成功していない。(グラフィック関係のライブラリ周りを除けばビルドできた。用途をpostscript
terminalに限定すれば使えるかも。DJGPP自体はまだUp
Dateされているようだが,現在あまり情報がなく,いまのところDJGPPでのビルドについて報告する予定はない。)
4.結論
独断と偏見による私見であるが,Windowsユーザーのgnuplotの選択については,現時点では次のような結論となる。
WSH(Windows Script Host)を利用したpostscript terminalを使うときのための小技ツール
GSviewでepsファイルを開いたままにして
wgnuplotスクリプトでepsファイルを上書きし,
そのあとGSviewのwindowをマウスでクリックしてアクティブにすると
上書きした内容でGSviewの表示が変わります。
私の使用方法は
wgnuplotとgsviewと秀丸をひらっきぱなしにして
秀丸でスクリプトをかきなおしてセーブしては
wgnuplotのプロンプトから
load '***.plt'
とうち,(ヒストリーを使えば苦にならない)
gsviewをマウスでクリックして確認してます。
それぞれのウィンドウの位置を工夫すれば結構いいですよ。
エラーがあってもすぐわかりますしね。
「そのあとGSviewのwindowをマウスでクリックしてアクティブにすると」
この部分はそれはそれでいいのだが
CygiwnのX11のgvでgv -watchでpsを見ていると,psファイルの更新のたびにクリックしないでも表示が更新されることをしった。
ただ,CygwinのXは起動に時間がかかるので気軽には使えなかったので従来どおりGSviewでみていちいちクリックしていた。
最近自動更新とまでいかないがWindows Script Host(WSH)を利用すると開いている起動しているアプリケーションをアクティブにしたり最小化されているアプリケーションのウィンドウを元のサイズにもどしたりできることがわかった。
そこでWindows Scripting HostをつかってGnuplotの「!」コマンドや「Shell」コマンドを利用してWgnuplotからGsviewのウィンドウをアクティブにするコマンドを送る小技ツールを作成した。
var WshShell = WScript.CreateObject("WScript.Shell");
objArgs = WScript.Arguments;
if (objArgs(0)=="-pid"){
var pid=parseInt(objArgs(1));
WshShell.AppActivate(pid);
for (i = 2; i < objArgs.length; i++){
WshShell.SendKeys(objArgs(i));
}
}
else{
WshShell.AppActivate(objArgs(0));
for (i = 1; i < objArgs.length; i++){
WshShell.SendKeys(objArgs(i));
}
}
WScript.Quit(0);
拡張子のjsは,jscriptと呼ばれるスクリプトファイルに用いられるものである。このjscriptは,AppActivateメソッドとSendKeysメソッドというWSHの機能を利用して特定のアプリウィンドウをアクティブにして,さらにキーコードをコマンドラインから送るものである。具体的に何をやっているのかは
http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/script56/html/wsoriwindowsscripthost.asp
を参照にしてすれば短いのですぐに解読できると思う。
たとえばtest.epsというpostscriptファイルがGsview32で開いているとすると
そのウィンドウのタイトルは
test.eps - GSview
となっているので
もし,GSviewのウィンドウが最小化されていないならば
Gnuplotから「!」を使って
!AppActivateSendKeys "test.eps - GSview"
とすればGSviewがアクティブになる。
しかし最小化されていると,最小化されたままアクティブになるのであまり意味がない。そこでさらにこのjscriptコマンドはWSHのSendKeysメソッドを用いてキー操作も送れるようにしたのでキーストロークでウィンドウを元のサイズに戻す操作である
[ALTキーを押しながらスペースを押し,その後Rキーを押す]
というキー操作を送ればよい。これはSendKeysでは「% R」(パーセント・スペース・R)と表現できるので
!AppActivateSendKeys "test.eps - GSview" "% R"
とする。Gnuplotでは具体的にはset term post enh
set out 'test.eps'
plot sin(x)
!AppActivateSendKeys "test.eps - GSview" "% R"
これでスクリプトを修正したらすぐにGSviewの画面が更新され,postscriptのterminalでのplotの結果のGSviewでの確認が楽になる。
普通は上記で十分だと思われるが,違うフォルダの同じファイル名の(e)psを同時にGSviewで開いている場合どちらがアクティブになるか不定である。AppActivateではプロセスIDを指定しアプリウィンドウのアクティブにすることもできる。したがって,プロセスIDがわかれば区別できる。上記のjscirptではオプション-pidのあとにプロセスIDを指定することもできるようになっている。プロセスIDが3321であるとすれば!AppActivateSendKeys -pid 3321 "% R"
var WshShell = WScript.CreateObject("WScript.Shell");
objArgs = WScript.Arguments;
if (objArgs.length==0) WScript.Quit(-1);
var ArgStr="", tStr="";
for (i = 0; i < objArgs.length; i++){
tStr=objArgs(i);
if (tStr.match(" ") != null) tStr= "\"" + tStr + "\"";
ArgStr += (tStr + " ");
}
var oExec = WshShell.Exec(ArgStr);
WScript.Quit(oExec.ProcessID);
(いちおうWSHのSendKeysをつかってwgnuplotへスクリプトを流しこめることは確認した。)
ツールが作れればこのページで紹介したいと思っている。
なお今回はWindows XPをつかっているのでWSHはVersion 5.6となっているが,機能としては2.0のものをつかっているのでwin2000以上のOSでは何もしなくても使えると思われる。(未確認)9x系でもWSHが入っていれば使えるであろう。
WSHについての詳細は
http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/script56/html/wsoriwindowsscripthost.asp
や
http://www.roy.hi-ho.ne.jp/mutaguchi/wsh/wshtop.htm
をみるとよい。
postscript関係のこと
awkでgnuplotのpostiscript enhancedスクリプトを生成し,下のような8進コード表を作成した。
post enhで役にたつかも知れない。
竹のさんのご指摘によりすでに,gnuplotのソースの配布物のdocs/psdoc/ps_guide.psの2ページ目にすでにもっと見やすい形であることを確認。gnuplotのソースの配布物をもっている人はそちらを見てください。
「ソース全部いらない」という場合はcvsのリポジトリの
http://cvs.sourceforge.net/viewcvs.py/gnuplot/gnuplot/docs/psdoc/ps_guide.ps
から取れます。
ここの記述消そうかと思ったが,そのままにしておくこととする。
(別の意味でこれでも役に立つかもしれないしれないので。(再発防止とか。))

#!/bin/awk -f
BEGIN{
xint=0.18
yint=0.035
linnum=
32 print "set term post
enh eps 10" print "reset" printf("set label 'Character code for postscript enhanced.' at 0.2,
%G\n", -0.1) printf("set
label ' Octal
numer code :
Times-Roman Symbol ZapfDingbats'
at 0.2, %G\n",
-0.075) print "set
xrange[-0.05:1.6]"print"setyrange[1.1:-0.1]"print"unsetborder"print"unsetkey"print"unsetxtics"print"unsetytics"for(i=0;i<=255;i++){
qoti = i % linnum
modi=int(i / linnum)
lin=sprintf("set label '\\\\%3o:{/Times-Roman \\%3o} {/Symbol \\%3o} {/ZapfDingbats \\%3o}' at %f, %f\n" ,i,i,i,i,xint*modi,yint*qoti)
gsub(/\\ /,"\\00",lin)
gsub(/\\ /,"\\0",lin)
printf("%s",lin)
}
print "set out 'fonttest2b.eps'"
print "plot 1/0"
}
おなじようなことをUnix版pstoeditでいっている人がいた。
http://www.chem.sci.osaka-u.ac.jp/~kanki/vine31.html
このフィルタでは,どうもサンプル点を直線でつないでいるためらしい。
とりあえずの策として図を大きくして実効的なサンプルを増やして何とか滑らかにできることが判明した。
pstoedit -f wmf -xscale 4 -yscale 4 test.eps test.wmf
「-xscale 数値 -yscale 数値」はスケールファクターであり増やすとと大きな図になり,Windowsソフトに取り込んでから小さくするとがたつきがへる。しかし,スケールファクターを大きくすれば滑らかさは増すが,ファイルサイズが大きくなる。まるでビットマップのようだ。^^;
ただ 文字が編集できる点は大きい。また,fig2devが不要なのでcygwin(もちろん通常のUnixも)がない場合にはこの手しかない。
(もちろんIllustratorもない場合であるが。)
xfig経由cgm変換では,スプラインで曲線をつないでいるものができるので,コンパクトである。しかし,ときどき変換がうまくいかないことがある。emf,wmf直接変換はあまりこけない。
一長一短があると感じている。
3. pstoedit+fig2devでのフォントの変換
実験してみた結果,pstoedit+fig2dev でのxfig経由e(e)ps->cgm変換で,pstoeditがサポートしている書体はおそらく
Courier, Courier-Bold, Courier-BoldOblique, Courier-Oblique
Helvetica, Helvetica-Bold, Helvetica-BoldOblique, Helvetica-Oblique
Symbol
Times-Bold, Times-BoldItalic, Times-Italic, Times-Roman
ZapfDingbats
である。Courier,Helvetical,Symbol,Timesの基本書体があるのでまずまずか。
それぞれMS-OfficeにとりこむとCouier New, Arial, Symbol, Times New Romanに読み替えられる。
ZapfDingbatsはWingdingsに変換され共通部分もあるがかなりの部分で異なる記号になる。要注意。
MS-OfficeにとりこむとCourierについてはベースフォントの大きさが違うのか,かなりサイズが変わってしまう。
HelveticaやTimesはほとんど同じ。また,symbol-obliqueはpstoeditの変換時に斜体指定は解除される。
pstoeditは最近3.40になった。マニュアル(html)がより充実している。すこし内部も変わったようだ。
細かいオプションを設定にすれば変換の精度よりよくなるかもしれない。(未確認)
wgnuplotではバッチモードではエラーがあるとpersistできない。
その対策ツール
wgnuplotをバッチモードで起動すると,スクリプトにエラーがあると
wgnuplot -persist ****.plt
のようにしても,落ちてしまうのでエラーが確認できません。
pgnuplotをつかってバッチモードもどきで実行し
エラーがあってもpause -1でとまったままにするプログラムを
作製しましたので公開します。
このとき,gnuplotのコマンドウィンドウはWindowsのタスクバー上で最小化しているので
これをアクティブにすればコマンドウィンドウが確認できます。
オプション「-m」でpause -1でのメッセージを指定できるようにしています。
ダウンロードは これ wgpspause050127.zip
(05/1/27, 1/31Readme.txtを変更しました。都合によりアーカイブ名はそのままにしました。)
現在の配布されているpgnuplotでは日本語の入ったスクリプトは通りません。
(日本語のコメントもだめです。)
pgnuplotで日本語が通るようにするには
pgnuplot.cの関数PostStringで
void PostString(HWND hwnd, char *pc)
{
while( *pc ){
PostMessage( hwnd, WM_CHAR, *pc, 1L );
/* CRS: should add a check of return code on PostMessage. If 0, the
message que was full and the message wasn't posted. */
pc++;
}
}
の
PostMessage( hwnd, WM_CHAR, *pc, 1L );
を
PostMessage( hwnd, WM_CHAR, (unsigned char) *pc, 1L );
に変更すればよろしいようです。
(05/01/31注 この修正はCVS版のpgnuplot(Revision: 1.13)には取り入れられています。
ついでに一行のバッファサイズ
#define BUFFER_SIZE 80
を
#define BUFFER_SIZE 512
ぐらいに増やしたほうがいいと思います。
(1/27注 これは危険だとgnuplot-beta MLで指摘を受けました。80でお使いください。
したがって一行は80byte で制限されます。)
(バッファに関する記載は全くの誤解でした。行が制限されることはありません。)
ビルドはお使いになっているgnuplotと同じバージョンのソースを例えば
http://sourceforge.net/projects/gnuplot/
からdownloadし
src\win の pgnuplot.c,
src の version.c,version.h,syscfg.hをソースからあつめて
同じフォルダにおいて
gcc -o pgnuplot pgnuplot.c version.c -luser32 -s でできます。
(gcc (GCC) 3.2.3 (mingw special 20030504-1)で確認してあります。)
できたpgnuplot.exeを既存のpgnuplot.exeとおきかえてください。
このpgnuplotをつかうとwgpspauseで
wgpspause -m "確認したらOKで終了してください" *****.plt
ようなこともできます。
注意
pgnuplotへの修正は本家に取り入れましたが,自己責任でお使いください。
使用の際はオリジナルを保存しておいてください。
wgnuplotでUnixの由来のツールのスクリプトなど使う。
Unixユーザーでいらしゃいますので
Unixでは一般的なawkやcatやsedなどのツールやUnixのShellスクリプトを交えたものを書かれます。
わたしもこれらのスクリプトを使わせていただいていますが,
wgnuplotで使う場合は工夫が必要なのでメモを書きます。
まずは,これらのツールを導入せねばなりません。
awkやsedやシェル(Windowsのcommand.comやcmd.exeに対応)のtcshのwindows版を
個々に導入することは可能ですがいささか面倒です。
簡単なのはmsysやcygwinをいれることです。
cygwinについてはpstoeditの欄で書きましたので,
msysについてすこし触れたいと思います。
msysはmingwというGNUのcやfortranなどの開発環境で必要になるUnixのコマンド群をwindowsに移植したものです。
このなかにはシェルやawkやsedやcatが含まれ,
Gnuplot Q&A 掲示板で紹介されるUnixのツールを用いたスクリプトを実行することができます。
(ただし,私が持っているmsysでは河野さんページで紹介されているpasteコマンドがありませんでした。)
msysの導入はこちらをごらんください。
http://www.interq.or.jp/japan/s-imai/tcltk/msys_mingw.html
ただし開発環境を使うのでなければここに書いてあるmingwは入れる必要はありません。
ただし,msysにpathをとおしたほうがいいので次のバッチファイルを作成します。
====================================================
@echo off
set mpath=C:\Progra~1\msys\1.0
set mdrv=C:
path %mpath%\bin;%path%
cd %mpath%\bin
%mdrv%
"%mpath%\msys.bat"
======================================================
これはたとえばmsysp.batなどとして保存して,これからmsysを起動してください。
mpathとmdrvの値は適宜変更してください。
「Progra~1」は「Program Files」の別名です。
フォルダー名にスペースがあるとトラブルがあることがあるのでこうしてあります。
(コントロールパネルなどで...\msys\binにpathが通してある場合は普通にmsysアイコンを使って結構です。)
(私は,cygwinとmsysを併用しているのでコントロールパネルでpathを設定していません。)
ツール群を使うには,
コマンドやwgnuplotはmsysやcygwinのプロンプトからを起動したほうが無難でしょう。
(必ずしもmustではないが,そうしない場合は工夫がいる場合が多い。)
まず,データのあるところへcdで移動します。
d:\data\gnuplot\data1にある場合は
msysなら
cd /d/data/gnuplot/data1
cygwinなら
cd d:/data/gnuplot/data1
または
cd /cygdrv/d/data/gnuplot/data1
とします。
Gnuplot Q&A 掲示板692番のshellスクリプトの場合。
このスクリプトではshellスクリプトからgnuplotを書き出していますが
gnuplotスクリプトで
「(s)plot "< ...."」
を使っているので最後のgnuplotをwgnuplotではなく,wgnuplot_pipesに代え,
適当な名前(たとえば'692')でセーブしmsysやcygwinのプロンプトで
./692
と打てばいいのではと思ったのですがうまくいきませんでした。
これはawkが,shellスクリプトで実はgawkを呼び出しているだけで
また,wgnuplotでは,「!」や「(s)plot "< ...."」では
通常のwindowsのコマンドプロンプトが呼び出されているようなので
shellスクリプトを解釈できないからのようです。
よって「!」とか「(s)plot "< ...."」ではawkはgawkと書き直してください。
わからない場合は,全部gawkと書き直すのが無難でしょう。
wgnuplot_pipesが使えない場合は
以下のようにデータをファイルに書き出してからプロットします。
=======================================================
#!/bin/sh
gawk '{if (NF !=0 && $1 !="#")\
printf "set arrow from %.1f,%.1f,0 to %.1f,%.1f,%.1f nohead lw 2\n", \
$1,$2,$1,$2,sqrt($2*$2);}' world.cor > world3d2.plt
cat >> world3d2.plt <<'EOF'
set parametric
set ticslevel 0
set zrange [0:100]
!gawk '{if(NF==0){print;print}else{print $1,$2,0}}' world.dat > tmp.dat
splot "tmp.dat" w line
pause -1
EOF
wgnuplot world3d2.plt
=======================================================
また,wgnuplotでは,!では通常のwindowsのコマンドプロンプトが呼び出されているようなので
引用符' 'のなかで[<]などの文字ががあるとうまくいきません。
そのときはスクリプトを別ファイルにセーブ(ファイル名tmp.awkとする)し
!gawk -f tmp.awk ...
などとする必要があります。
手間がかかりますが,少しの手直しでawkなどのスクリプトを駆使した例を
wgnuplotで実行できるようになるでしょう。
04/12/27
wgnuplotでグラフウィンドウ2つ(以上)ならべて違う位置で起動するには
昔の話題ですが,纏めておきます。(gnuplot掲示板394からのスレッド)
wgnuplotではX11のgeometryオプションのように起動時のグラフウィンドウの位置が指定できない。
wgnuplot.iniのGraphOrigin=0 0の位置だけ変えたものを用意して置いて起動することになる。
このためのバッチファイルとgnuplotスクリプトファイルの例を纏める。
テクニックとしてプロット完了を検知する必要があり,
gnuplotスクリプトダミーファイルを作成しバッチファイルでループを作って待機する。
ファイルの作成でプロット完了を知りループを抜ける。
(竹のさんにpgnuplotに関して教えてもらった方法。感謝!!
gnuplot掲示板137からのスレッド)
バッチファイルのstartコマンドはNT系(NT,2000,XP)のみだったはず。
95系のOSでは普通に起動すればいいと思われる。(未確認)
rem ******* バッチファイルの例 *********
@echo off
copy %windir%\wgnuplot.ini wgnuplot.ini.bak > nul
copy w1.ini %windir%\wgnuplot.ini > nul
rem 念のためダミーファイルを消しておく。
del temp2.txt > nul
start wgnuplot test.plt -
rem ダミーファイルができるまでまってプロット完了を知る。
:loop
if not exist temp2.txt goto loop
rem ダミーファイルを消しておく。
del temp2.txt > nul
copy w2.ini %windir%\wgnuplot.ini > nul
start wgnuplot -persist test.plt
rem ダミーファイルができるまでまってプロット完了を知る。
:loop2
if not exist temp2.txt goto loop2
rem ダミーファイルを消しておく。
del temp2.txt > nul
copy wgnuplot.ini.bak %windir%\wgnuplot.ini > nul
#*******test.pltの例********************
plot sin(x)
set out 'temp2.txt'; set out
# 最後のset out 'temp2.txt'; set outはダミーファイルを作り,
# プロット完了のタイミングを計るために使う。
#***w1.iniの例***********************
[WGNUPLOT]
TextOrigin=0 0
TextSize=469 1004
TextMinimized=0
TextFont=Terminal,10
SysColors=0
GraphOrigin=0 0
GraphSize=787 652
GraphFont=Terminal,10
GraphColor=1
GraphToTop=1
GraphBackground=255 255 255
Border=0 0 0 0 0
Axis=192 192 192 2 2
Line1=255 0 0 0 0
Line2=0 255 0 0 1
Line3=0 0 255 0 2
Line4=255 0 255 0 3
Line5=0 0 128 0 4
Line6=128 0 0 0 0
Line7=0 128 128 0 1
Line8=0 0 0 0 2
Line9=128 128 128 0 3
Line10=0 128 64 0 4
Line11=128 128 0 0 0
Line12=128 0 128 0 1
Line13=192 192 192 0 2
Line14=0 255 255 0 3
Line15=255 255 0 0 4
#*****w2.iniの例**********
[WGNUPLOT]
TextOrigin=0 0
TextSize=469 1004
TextMinimized=0
TextFont=Terminal,10
SysColors=0
GraphOrigin=788 0
GraphSize=787 652
GraphFont=Terminal,10
GraphColor=1
GraphToTop=1
GraphBackground=255 255 255
Border=0 0 0 0 0
Axis=192 192 192 2 2
Line1=255 0 0 0 0
Line2=0 255 0 0 1
Line3=0 0 255 0 2
Line4=255 0 255 0 3
Line5=0 0 128 0 4
Line6=128 0 0 0 0
Line7=0 128 128 0 1
Line8=0 0 0 0 2
Line9=128 128 128 0 3
Line10=0 128 64 0 4
Line11=128 128 0 0 0
Line12=128 0 128 0 1
Line13=192 192 192 0 2
Line14=0 255 255 0 3
Line15=255 255 0 0 4
gnuplotのpostscript (ps)出力のwindowsソフトへのとりこみ
(gnuplot掲示板605,606,615,616参照)
(05/02/05に関連した話題がある。)
gnuplotではps出力が一番融通の利くオプションであり,美しい出力をするためには欠かせない。
psファイルはghostscript(+ghost view)で閲覧,印刷できるし,
adobe distillerやghostscriptやその付属のps2pdfでpdfへも変換できるので閲覧印刷はできるが
それを編集したりpower pointの図として取り込むには難がある。
また,最近のofficeはepsを取り込むアドオンフィルタがついているのでこれを使用する手が考えられられるが
文字までベクトルデータに変換されてしまい,後から編集しようとする場合は少し問題がある。
そこでpstoeditを使用することができる。この使用メモである。
PSTOEDITのインストール
http://www.pstoedit.net/pstoedit
のbinary for Windows 9x/2K/NT/XP
からwindows用binaryを入手。
入手したexeファイルを実行して適当なフォルダへインストールする。
コマンドラインで扱いやすくするためにpathを通しておく。
pstoeditは現在のバージョンは
Imagemagickというソフトのdllを使用するので
Imagemagickをインストールすることにする。
(dllだけあれば本当はいいらしいが面倒なのでImagemagickをインストールする。
ImagemagickはUnix由来の画像を変換ソフトで変換だけでなく効果もつけられるらしい。)
インストールは
http://www.imagemagick.org/
にいきdownload site
http://www.imagemagick.org/download/binaries/
からdll版を入手してインストールする。
zipファイルを解凍すればインストーラーがあるのでインストールは簡単。
これにてPSTOEDITが使えるようになる。
データの変換と取り込みとその問題点
付属のhtmlファイルは必読。また,サポートしているファイルは実はhtmlにははっきり書いていない
コマンドラインから
pstoedit -f:format -help
として読む。リダイレクトしてファイルにしておくとよいだろう。
変換は例えばtest.psをemfに変換したいならコマンドラインから
pstoedit -f emf test.ps test.emf
とする。
取り込みは例えばMicrosoft Officeならメニュの挿入ー図ーファイルで
ファイルを選べば取り込みが可能。
しかし,emfフィルタは実行してみると分かるが,ベクトルデータ変換の問題かよく分からないが曲線が
がたついて変換されてしまう。我慢できるレベルにはない。
これを避けるには,wemfという名前のデバイス名で登録されているフィルタを用いればいいようであるが
これの正式仕様にはライセンスキーが必要である。
キーがなくても変換はできるが,淡色となるし,一部の文字が'$'に変換される。
取り込んだ図をグループ化解除をして分解したのち,文字と線の色を変えればきれいなグラフが得られる。
Microsoft Officeはcgmファイルを取り込るがpstoeditのcgmフィルタもライセンスキーが必要なようだ。
また,pstoeditのwemfフィルタはMicrosoft officeのpsアドオン変換フィルタ(拡張子をpsとしておく)として
起動するのでライセンスキーを購入すれば非常に便利になるかもしれない。
現状での解決策
ライセンスキーを購入すれば問題はないと思われるがキーなしでなんとかできないものかとあがいていた。
最近,cygwin+X11R6を導入しそのときxfigがついてきたのだがそこにあるfig2devを併用する手があることに気づいた。
cygwin+X11R6の導入方法は以下のcygwin+Xfree86の導入ページを参考にしてください。
http://www.atmarkit.co.jp/flinux/special/cygwin/cygwin01a.html
ただし,最近cygwinではX11R6がインストーラーから直接導入できるのでこちらをいれるとよい。
具体的な手順は次のようcygwinプロンプトを起動し,データのあるディレクトリに移動する。
psファイル名をtest.psとしておく
cygwinプロンプトから
pstoedit -f xfig test.ps test.fig
fig2dev -L cgm test.fig test.cgm
とする。このcgmファイルをとりこめばよい。
X11R6がなくてもcygiwinとfig2dev (その周辺が必要かもしれないが)だけでいいとおもうが,
fig2dev単独で導入できるかは現在のところ未確認。
しかしxfigやx11版のgnuplotなど動かせるのでX11R6をいれておくのも損はない選択だと思う。
goto top
・gnuplotの本家のページ(English)
CygwinでCVS版を作成したい人は本家のページの「Building from CVS source」を見てください
・gnuplot の download サイト
4.2.6 のWindows ネイティブ版は gp426win32.zip, DJGPP 版は,gp426dj2.zip, Cygwin 版は,gp426win32x11.zipです
4.4.0-rc1 の Windows 版は,gp440rc1_win.zip でネイティブ版, Cygwin 版が含まれています。
・gnuplot のテスト用バイナリ置き場
臨時用にTesting Binaryなどがおかれる場所です。CVS版のバイナリもおかれています。
・角藤さんによるCVS版Windows 用バイナリ
角藤さん(近畿大)がビルドされているCVS版Windows 用バイナリのミラー(だと思います)。
速度の点からは上記ミラーをすすめますが,角藤さん自体のページはここ(W32TeXのページの後の方にgnuplotの記述があります。)。
・gnuplot 4.5 (cvs) cygwin binaries prepared by gcc-4.x.x
gcc v4でビルドした,cygwin 版 cvs 版のgnuplotの置き場です。
・File list of gnuplot 4.5 for Windows
gcc-4.4.0-MinGW (Official版) でビルドしたcvs 版 windows native 版の gnuplot の置き場です。
gcc-4.4.1 でビルドした djgpp 版の gnuplot もおいてあります。
・gnuplot
のページ(ヘルプやマニュアルの日本語訳がある)(新潟工科大学 竹野先生)
とくにwidows版については「MS-Windows 用の gnuplot の日本語化キット」の「付属ドキュメント」
に詳しいインストールの仕方があります。http://sourceforge.net/project/showfiles.php?group_id=2055
・gnuplot のページ
(竹野先生の個人的なGnuplotのページ)
非常に情報が多く,最新の情報が得られます。必見です。
・グラフは Gnuplot
にお任せ(東京電機大学 松田先生)
ここの掲示板はすごくお世話になっています。
・- not so Frequently Asked Questions -
(非常に詳しい使い方のページ)(ロスアラモス研究所の河野様)
最近更新されていませんが,使い方が整理して書いてあるので非常に参考になります。必見です。
・Inkscape 自由に描く。
svg フォーマットのグラフィックスを編集できる Draw ソフト。
09/04/10のメモも参考にしてください
goto top
メモの題名
09/12/06 gnuplot 4.4.0 rc-1 の独自ビルドの配布
09/12/04 gnuplot 4.5 (CVS) Cygwin-1.7 版とMinGW 版で lua ターミナルをサポートしました
09/11/29 gnuplot-4.4.0-rc1がでました
09/11/06 png terminalでの日本語出力
09/10/24 CVS 版のバージョンが4.5になりました
09/10/17 角藤さん版 Windows 用 CVS 版バイナリーのミラーのアドレスが変更されているようです
09/09/27 gnuplot 4.3 (CVS) Windows 版で wxt ターミナルを使用可能とする差分パッケージを配布開始しました
09/09/10 gnuplot 4.3 (CVS) Cygwin-1.7 版が pngcairo と pdfcairo ターミナルに対応しました
09/09/07 gnuplot4.2.6がでました
09/09/01 gnuplot 4.3 (CVS) Windows 版を pngcairo と pdfcairo ターミナルに対応させました
09/07/03 cygwin 用 gnuplot 4.3 (CVS) に Cygwin-1.7 用のものをアップロードしました
09/04/15 gnuplot4.2.5が出てます^^;
09/04/10 gnuplotのsvgファイルをinkscapeでみるためには
09/02/09 Windows Vista上でのwindows版でのhelpファイルの表示について
08/12/29 gcc-4.3.2でビルドしたdjgpp版のgnuplotを配布開始しました
08/12/25 gcc-4.3.0-dw2(mingw)でビルドしたwindows Native版のgnuplotを配布開始しました
08/12/14 gnuplotのpostscript (ps)出力のwindowsソフトへのとりこみ(再)(要 cygwin)
08/11/23 Windows版コンソールモードのgnuplot 4.3 (CVS)の名称がgnuplotと決まり,アナウンスがありました
08/11/16 Windows版コンソールモードのgnuplot 4.3 (CVS)がでました
08/10/23 gnuplot 4.2.4 emf terminal ehnaced の問題点
08/10/05 1. gnuplot 4.2.4がでました
2. Octave3.0.2+Forge20080831 Mingw版 にコンソールモードのgnuplot 4.3 (CVS)
が添付されています
3. cygwin用のgnuplot cvs 版 の新しいバイナリ(2008-10-02)
をアップロードしました
08/09/09 cygwin用のgnuplot cvs 版の置き場所を変え,新しいバイナリをアップロードしました
08/09/07 gnuplotメモの移転
08/03/30 Window版とCygwin版のgnuplot 4.3 (CVS)のバイナリ
08/03/18 Cygwin版gnuplot 4,2.3がでました
08/03/13 gnuplot 4,2.3がでました
08/02/26 Petr Mikulikさんが,Windows, OS/2, DJGPPのバイナリを用意してくれました
07/12/18 1.Cygwin版gnuplot 4.3 (CVS) 版のバイナリーを更新しました,
2.Octave MSVC版に付属のwgnuplot, pgnuplotについて
3.DJGPPのgnuplotについて
07/12/10 Cygwin版gnuplot 4.3 (CVS) 版のバイナリーを更新しました
07/09/15 Cygwin版gnuplot 4.3 (CVS) 版のバイナリーを公開場所を変更してます
07/08/16 Cygwin版gnuplot 4.3 (CVS) 版のバイナリーを公開しています
07/07/19 fit multi-branchの例
07/03/15 gnuplot-4.2がリリースされました
06/03/20 windows TerminalにEnhanced Textがサポートされました
05/09/08 wgnuplot.iniの保存フォルダーの変更について
05/04/02 Windows上で動くgnuplotについて
05/02/19 WSH(Windows Script Host)を利用したpostscript terminalを使うときのための小技ツール
05/02/05 postscript関係のこと
05/01/26 wgnuplotではバッチモードではエラーがあるとpersistできない。その対策ツール
05/01/19 wgnuplotでUnixの由来のツールのスクリプトなど使う。
04/12/27 wgnuplotでグラフウィンドウ2つ(以上)ならべて違う位置で起動するには
04/12/22 gnuplotのpostscript (ps)出力のwindowsソフトへのとりこみs
goto top