パラメーターをまとめる
ngraph-gtk (ngraph) で作成するグラフの大きさや縦横比は、そのグラフを描画する用紙(ページ)の設定と、グラフの新規作成時に与えるパラメータで決まります。基本的に ngraph のグラフは、A4縦(Portrait)の用紙、210[mm]×297[mm] に、140[mm]四方で描画することがデフォルトになっているので、グラフの縦横比を変化させたいのであれば、最初にサイズを与える必要があります。
いくつか使えそうな比率と、それに合わせたパラメーターを計算したのが下記の表です。「グラフ→ページの設定」でA4P(縦)かA4L(横)を設定してから、「グラフ→新規作成」で描画したいグラフのタイプを選んで、パラメーターを設定します。
A4P | デフォルト(1:1) | 4:3 | 白銀比(1.414:1) | 黄金比(1.618:1) | 16:9 |
---|---|---|---|---|---|
X | 35 | 35 | 35 | 35 | 35 |
Y | 220 | 202 | 198 | 192 | 190 |
幅(W) | 140 | 140 | 140 | 140 | 140 |
高(H) | 140 | 105 | 98 | 86 | 80 |
A4L | デフォルト(1:1) | 4:3 | 白銀比(1.414:1) | 黄金比(1.618:1) | 16:9 |
---|---|---|---|---|---|
X | 79 | 55 | 49 | 35 | 24 |
Y | 175 | 175 | 175 | 175 | 175 |
幅(W) | 140 | 188 | 200 | 228 | 250 |
高(H) | 140 | 140 | 140 | 140 | 140 |
なお、A4紙自体は白銀比です。
以下、計算方法
フレーム/方眼グラフを作成する場合、デフォルトではグラフの幅と高さを140mm四方としています。
紙の縦方向py軸は、原点(px,py)=(0[mm],0[mm])を紙の左上として、下方向が正です。一方、グラフの縦方向y軸は、上記の紙座標で定めた点を原点として、上方向が正になります。
紙の横方向px軸と、グラフの横方向x軸は、両方とも右方向が正になります。
以上から、
グラフのX方向の始点は (210[mm]-140[mm])/2 = 35[mm]
グラフのY方向の始点は (297[mm]-140[mm])/2 + 140[mm] ≒ 220[mm]
(切り上げて最も近い偶数にした)
という計算になります。実際、用紙A4縦のフレーム、方眼グラフのデフォルト値は
X 35.00[mm]
Y 220.00[mm]
幅(W) 140.00[mm]
高(H) 140.00[mm]
となっています。
一方、例えば gnuplot の場合、縦横比のデフォルト値は terminal によって変わります。
" The default size for postscript output is 10 inches x 7 inches. The default",\
" for eps output is 5 x 3.5 inches. "
#define CAIROEPS_PARAMS_DEFAULT { \
CAIROTERM_EPS, INCHES, FALSE, FALSE,
1.0, {1.,1.,1.}, FALSE, FALSE, TRUE, FALSE, NULL, \
12, 0.5, 5*72., 3*72., 0.25, 1.0, 1.0, FALSE \
}
postscript系は 10:7 で白銀比(1.414:1 ≒ 10:7.1) に近く、cairo系(epscairo, pdfcairoなど) は 10:6 で黄金比 (1.618:1 ≒ 10:6.2 ) に近い設定です。
というわけで、これらの比率を考慮したグラフをngraphで描画するには、ちょっとした計算が必要になるので、まとめてみた次第です。16:9は細長すぎるので省いてもよかったかもしれません。
グラフの片方の辺を140[mm]に固定したのは 1:1 のデフォルトに合わせた(A4の短辺 210[mm] 側が 140[mm] になるようにしている)からなので、これをもう少し拡大もしくは縮小する必要がある場合、計算をやりなおす必要があります。