Tips

GRAPHで作画してSVGで文書を仕上げる

日付2011/01/26
ID76226 (英語原文参照)
バージョンv12
プラットフォームMac/Win

GRAPHコマンドは, 4D ChartとSVG, ふたつの描画エンジンを切り替えて使用するコマンドです。どちらのエンジンが使用されるのかは, 渡される変数のタイプにより決まります。4D Chartのエリア参照またはC_GRAPH変数を渡せば4D Chart, C_PICTURE変数を渡せばSVGでグラフが作成されることになります。

後者つまりC_PICTURE変数でGRAPHコマンドを使用した場合, 出力されるグラフはSVGで作られているので, 一般的なSVG文書と同じようにコマンドで処理することができます。そのためには, まずC_PICTURE変数をSVG参照(DOM XML参照)に変換する必要があり, たとえばSVGコンポーネントのSVG_Open_pictureコマンドでこれを実行することができます。

C_PICTURE(vGraph) `Pass if you want to use the SVG engine

` Create an array for the x-axis
ARRAY TEXT(X;2) 
X{1}:="1995" ` X Label #1
X{2}:="1996" ` X Label #2

` Create an array for the y-axis
ARRAY REAL(A;2) 
A{1}:=30 ` Insert some data
A{2}:=40

` Create an array for the y-axis
ARRAY REAL(B;2) 
B{1}:=50 ` Insert some data
B{2}:=80

` graph type
C_LONGINT(vType)
vType:=4 ` 4 for line graph

` Draw the graph
GRAPH (vGraph;vType;X;A;B) 

` Set the legends for the graph
GRAPH SETTINGS(vGraph;0;0;0;0;False;False;True;"France";"USA") 

` convert the C_PICTURE to an SVG_Ref_ID
$svgRef:=SVG_Open_picture (vGraph)

` add text to it
$textID:=SVG_New_text ($svgRef;"Hello world";0;0)

` convert from SVG_Ref_ID back to C_Picture
SVG EXPORT TO PICTURE($svgRef;vGraph)

` clear SVG memory
SVG_CLEAR ($svgRef)

` write out the picture file
WRITE PICTURE FILE("";vGraph)