ブログ
図・動画作成
プロット
Google サービス
クラウドサービス
リモート操作
レンタルサーバー
|
インターネット
プロット
図・動画作成プロット科学技術や自然科学系の WEB サイトでは,プロット (グラフ) 必要になることがあります.ここでは gnuplot を使い美しいプロットを作成し,WEB サイトに載せる方法を示します. 目次はじめに自然科学や工学系の WEB サイトを作成する場合,どうしてもプロットを載せたくなります.Excel でプロットを作成する人は多いですが,これはかなりダサいです.あくまで主観ですが,論文や正式な文書で Excel のプロットを見ると,脱力感は半端ではありません.ここでは,比較的簡単に美しく仕上がる gnuplot をつかい WEB サイトに載せるプロットを作成します. gnuplot による SVGここでは,SVG フォーマットで出力された gnuplot の図(プロット)を WEB ページに掲載する方法を示します. SVG ファイルの作成プロットサンプルWEB サイトで使う図はラスター形式よりもベクター形式が望ましいです.拡大/縮小しても,図がボケたり荒くなったりしないからです.さまざまなベクター形式の中で,WEB ページに掲載可能なフォーマットは SVG に限られます.ここでは,gnuplot を使い SVG フォーマットのプロットファイルの作成方法を示します.まずは具体例です. 001 #==================================================== 002 # plot 003 #==================================================== 004 set terminal qt 005 set sample 2**10 006 set pointsize 0.5 007 set xzeroaxis 008 set yzeroaxis 009 010 #---- x axis ------- 011 set xrange [-10:10] 012 set xtics border mirror in scale 2,1 font ",22" -10,5 013 set mxtics 5 014 set format x "%.0f" 015 set xlabel "{/Helvetica:Italic x}" font ",36" rotate parallel 016 017 #---- y axis ------- 018 set yrange [-1.2:1.2] 019 set ytics border mirror in scale 2,1 font ",22" -1.5,0.5 020 set mytics 5 021 set format y "%.1f" 022 set ylabel "{/Helvetica:Italic y}" font ",36" rotate parallel 023 024 #--- plot ------------- 025 plot sin(x) with lines lc rgb "blue" lw 2.0 notitle 026 027 #==================================================== 028 # postprocessor for makeing a plot file 029 #==================================================== 030 pause -1 "push [Enter] key to quit" 031 set terminal svg enhanced standalone mouse solid 032 set output "sin.svg" 033 replot 034 unset output このリストの 031 行で,ターミナルを 様々なオプションを指定した svg に変更しています.引き続く 032 行で svg ファイル名を,033 行でプロットを出力します. 以上で,正弦波のプロットのファイルが作成できます.後述する図1に,このプロットを示します. SVG オプションこの gnuplot の svg ターミナルのオプションを以下に示します. set terminal svg {size <x>,<y> {|fixed|dynamic}} {{no}enhanced} {fname "<font>"} {fsize <fontsize>} {mouse} {standalone | jsdir <dirname>} {name <plotname>} {font "<fontname>{,<fontsize>}"} {fontfile <filename>} {rounded|butt|square} {solid|dashed} {linewidth <lw>} {background <rgb_color>}
WEB ページに載せる作成された SVG は,以下のようにして html ファイルに取り込みます. <img src="SVG ファイルへのパス" width="幅 px"> SVG ファイルのパスと幅を記述します.たったこれだけで,SVG ファイルの画像が表示されます(図1).
この図ではちょっとダサいところがあります.プロットに枠が描かれており,それが文字(ここでは x と y)と接触しています.次節ではこれを修正します. 少しクールにする先に示した図1のプロットの図の枠が小さすぎます.そのため,軸名「x」と「y」と枠の隙間が狭くて,ちょっとかっこ悪くなっています.これは,gnuplot が作成する SVG ファイルには,白い四角形の枠(背景)が描かれているからです.これを gnuplot の広げれば良いのですが,それはできません.gnuplot では枠(背景)のサイズを変更できないからです.そこで,別の手段で SVG ファイルを編集しなくてはなりません.また,編集したファイルを WEB ページにかっこ良く表示させるために,少し工夫が必要です. SVG ファイルの編集SVG ファイルは,(1)グラフィックエディター,あるいは(2)テキストエディターを使い編集可能です.どちらでも,背景の編集ができます. Inkscapeグラフィックエディター Inkscape を使い SVG ファイルを編集します. テキストエディターSVG ファイルはテキストファイルなので,適当なエディターで編集可能です.背景を描いている四角形を削除します.この背景を作っているのは,SVG の四角形要素「<rect />」です.これを以下のように,コメントアウトします. <!-- <rect x="0" y="0" width="600" height="480" fill="#ffffff" stroke="black" stroke-width="1" onclick="gnuplot_svg.toggleCoordBox(evt)" onmousemove="gnuplot_svg.moveCoordBox(evt)"/> --> HTML へ反映HTML への反映は,以下のようにします. <img src="SVG ファイルへのパス" width="幅 px" style="background-color:white; padding:10px"> CSS の style の background-color で背景色を,padding で隙間を指定しています.すると,以下のように表示できます.隙間が拡がり,見た目が良くなります.
gnuplot による Canvasここでは,SVG フォーマットで出力された gnuplot の図(プロット)を WEB ページに掲載する方法を示します. 準備gnuplot が作成した Canvas ファイルをWEBページに表示させるためには,サーバー側に準備が必要です.gnuplot のいくつかのファイルを適当なディレクトリーに保管します.必要なファイルは,Windows では「インストールフォルダー\gnuplot\share\js\」に,Linux では「/usr/local/share/gnuplot/<version>/js」にあります.ここにあるすべてのファイルをサーバーの適当な場所にコピーします. Canvas ファイルの作成プロットサンプルここでは,gnuplot を使い Canvas フォーマットのプロットファイルの作成方法を示します.まずは具体例です. 001 #==================================================== 002 # plot 003 #==================================================== 004 set terminal qt 005 set sample 2**10 006 set pointsize 0.5 007 set xzeroaxis 008 set yzeroaxis 009 010 #---- x axis ------- 011 set xrange [-10:10] 012 set xtics border mirror in scale 2,1 font ",14" -10,5 013 set mxtics 5 014 set format x "%.0f" 015 set xlabel "{/Helvetica:Italic x}" font ",18" rotate parallel 016 017 #---- y axis ------- 018 set yrange [-1.2:1.2] 019 set ytics border mirror in scale 2,1 font ",14" -1.5,0.5 020 set mytics 5 021 set format y "%.1f" 022 set ylabel "{/Helvetica:Italic y}" font ",18" rotate parallel 023 024 #--- plot ------------- 025 plot cos(x) with lines lc rgb "red" lw 2.0 notitle 026 027 #==================================================== 028 # postprocessor for makeing a plot file 029 #==================================================== 030 pause -1 "push [Enter] key to quit" 031 set term canvas size 450,300 name 'cos_plot' 032 set output 'cos.js' 033 replot 034 unset output このリストの 031 行で,ターミナルを 様々なオプションを指定した Canvas に変更しています.引き続く 032 行で JavaScript ファイル名を,033 行でプロットを出力します. 以上で,余弦波のプロットのファイルが作成できます.後述する図に,このプロットを示します.このスクリプトを実行すると,JavaScriptファイル「cos.js」が作成されます.このファイルには,関数「cos_plot()が書かれています.この関数を実行することで,プロットが描かれます.このスクリプトで作成されるプロットは,後述する「WEB ページに載せる」に示します. Canvas オプションこの gnuplot の canvas ターミナルのオプションを以下に示します. set terminal canvas {size <xsize>, <ysize>} {background <rgb_color>} {font {<fontname>}{,<fontsize>}} | {fsize <fontsize>} {{no}enhanced} {linewidth <lw>} {rounded | butt | square} {dashlength <dl>} {standalone {mousing} | name '<funcname>'} {jsdir 'URL/for/javascripts'} {title '<some string>'}
WEB ページに載せるgnuplot の Canvas ターミナルにより作成された JavaScript ファイルは,以下のようにして HTML ファイルに取り込まれます. ページ作成情報参考文献更新履歴
|