描画メソッド一つにつき、一つの yaml file を用意する。
以下は折れ線図のための yaml file である。
db/draw_methods/line.yml :name: line :description: line plot :ndims: 1 :nvars: 1 :vizshot_method: line :attributes: []
yaml file には Hash データが入っており、 その Hash のキーは symbol である。
line では描画パラメータの設定は一つも無かった。 次に、描画パラメータを設定する場合について説明する。 以下はトーン&等値線図のための yaml file である(一部省略)。
db/draw_methods/tone.yml :name: tone :description: tone and contour plot :ndims: 2 :nvars: 1 :vizshot_method: tone_cont :setting_html: | <div> <%= check_box("analysis", "tone_tone") %> <label for="analysis_tone">Draw tone</label> <br/> <label for="analysis_min">minimum tone level</label> <%= text_field("analysis", "tone_min", :size => 4, :maxlength => 12) %> <br/> <label for="analysis_levels">comma-separated tone levels:</label> <%= text_field("analysis", "tone_levels", :size => 30, :maxlength => 200) %> <br/> <%= check_box("analysis", "tone_color_bar") %> <label for="Color bar">Color bar</label> </div> :attributes: - :name: tone :default: true :type: boolean :parser: vizshot - :name: min :type: float :optional: true :parser: ggraph - :name: levels :type: array_float :optional: true :parser: ggraph - :name: color_bar :default: true :type: boolean :parser: vizshot
":attributes:" は Hash を要素とする Array である。 その Hash は symbol をキーにもつ
RHTMLのなかではERBおよびRailsのヘルパーメソッドが利用できる。 改行を含む String を yaml file にかく場合は "|" から初めて、 空行で終わる。
折れ線、コンターともにvizshotでサポートされている描画メソッドである。 では、次に独自の描画メソッドを追加する方法を見てみよう。 以下は散布図用の yaml file である。
db/draw_methods/scatter.yml :name: scatter :description: scatter plot :ndims: 1 :nvars: 2 :vizshot_method: scatter :attributes: [] :script: | newfrm = opt.delete(:newfrm) GGraph::scatter(gphys, gphys1, newfrm, opt) :ggraph: | gropn_1_if_not_yet unless defined?(@@scater_options) @@scater_options = Misc::KeywordOptAutoHelp.new( ['title', nil, 'Title of the figure'], ['annotate', true, 'if false, do not put texts on the right margin even when newframe==true'], ['index', 1, 'mark index'], ['type', 2, 'mark type'], ['size', 0.01, 'marks size'] ) end opts = @@scater_options.interpret(options) gphys = gphys.first1D.copy gphys1 = gphys1.first1D.copy len = gphys.length . . snip
yamlファイルの内容をgfdnaviで利用するためには、 データベースに登録する必要がある。 データベースに登録するためには
rake setup:draw_methods
とする。
Analysis model 内では、 描画パラメータの追加は、Analysisクラスの属性を追加することで実現されている。 クラス属性の名前は "描画メソッド名+パラメータ名" である。 例えば、toneメソッドのmaxパラメータの場合、 Analysis#tone_max となる。 描画に関するパラメータやオプションをもとに、 Analysisモデルが Vizshot を生成し、 その vizshot を通じて GGraph や DCL に渡される。
<URL:HowTo_help_popup.htm> を参照
ユーザーオリジナルのメソッドを登録するためには、 まずユーザーログインする必要がある。
ログインした時の画面もしくは上のメニューから "User" をクリックした画面に "manage_draw_methods" リンクがある。 そこに移動すると、利用できる描画メソッドのリストおよび、 描画メソッド新規追加ページへのリンク(create_draw_method)がある。 さっそく新規追加ページに移動しよう。 ここで入力する値は、上の yaml ファイルに記述した内容とほとんど同じである。
Html for specific setting : "create_default_html" ボタンを押すと、上で入力した値を元に、 html を作成し、下の text area に挿入してくれる。 これを元に必要な部分を編集すればよい。 もちろん最初からすべて自分で書いてもよい。 いつでも、"create_default_html" を押せば、デフォルトの html に戻る。 ERB および Railsのヘルパーメソッド が使用できる。
"preview" ボタンを押すと、 下にその html がレンダーされて表示される。 実際にそのhtmlがどのように表示されるかをチェックする。