Tips

GRAPHコマンドのグラフをカスタマイズ

日付2010/08/10
ID10-014
バージョンv11, v12
プラットフォームWin, Mac

4D v11よりGRAPHコマンドは、SVGで出力できるようになりました。SVGで出力されたグラフは、4D SVG ComponentやXML DOMコマンドでカスタマイズすることができます。

GRAPHコマンドでSVGを出力させる為には、第1引数にピクチャ変数を渡します。指定したピクチャ変数の中には、SVGが収められます。このSVGをXML DOMコマンドで編集する為には、BLOB変数を経由してDOM Parse XML variableコマンドでXML化する必要があります。

XML化は、具体的には次のように行います。

  //グラフを作成
C_PICTURE(pictGraph)  //グラフ用ピクチャ変数
GRAPH(pictGraph;$graphType;$X;$A;$B;$C;$D;$E)  //ピクチャ変数にグラフ描画

  //SVGをXML化
C_BLOB($pictureBlob)  //SVG変換する為の一時変数
PICTURE TO BLOB(pictGraph;$pictureBlob;".svg")  //SVGを一時変数に取り出す
$ref_xml:=DOM Parse XML variable($pictureBlob;False)  //XMLコマンドで扱えるようにパースする

  //ここに編集の処理を書く

DOM CLOSE XML($ref_xml)  //XMLを削除してメモリを解放(忘れるとメモリーリークの原因)

XML化されたグラフは、XML DOMコマンドで編集することが可能です。編集後にSVG EXPORT TO PICTUREで、ピクチャ変数に戻してグラフとして表示させます。

実際に棒グラフの色を変更するサンプルを下記のリンクよりダウンロードして試すことができます。サンプルは、4D v11でも4D v12でも動作します。