LoginSignup
0
0

More than 3 years have passed since last update.

ngraphで作成するグラフのサイズについてメモ

Last updated at Posted at 2020-10-13

パラメーターをまとめる

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] になるようにしている)からなので、これをもう少し拡大もしくは縮小する必要がある場合、計算をやりなおす必要があります。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0