0

C++ を使用して Gnuplot スクリプトをストリーミングしています。しかし、アスペクト比と用紙サイズを扱うのは非常に面倒です。誰もが良い方法を持っていますか:

(1) 縦横比を正しく保ちます。プロットの長さ 1 は 1、2 は 2 です。縦横比は用紙サイズに依存することがわかりました!!!

(2) ゼロ マージン用紙、用紙サイズは自動スケーリングされます。eps の図には常に大きな余白があることがわかりました。

set terminal postscript eps enhanced color font 'Helvetica,2000' size 640,480
set output 'grid.eps'
set size 1, 1
set hidden3d
unset key
unset tics
unset border
set view 0,0,1,1
set xrange [0:3]
set yrange [0:6]
set zrange [0:1]
set title 'grid test'
splot 'grid.dat' using 1:2:3 with lines lt 2 lc rgb '#100000'

grid.datファイル:

0 0 0
1 0 0
2 0 0
3 0 0

0 2 0
1 2 0
2 2 0
3 2 0

0 4 0
1 4 0
2 4 0
3 4 0

0 6 0
1 6 0
2 6 0
3 6 0

アスペクト比が正しいと言うのは、プロットが正方形などではなく、正確に 2:1 の長方形のグリッドのように見えるようにしたいということです。何とか体型を引き延ばしたくありません。

4

2 に答える 2

1

これがトリックです。次の汎用スクリプトがあるとします。

set terminal postscript eps enhanced color font 'Helvetica,20' size Lx,Ly
set xrange [XMIN:XMAX]
set yrange [YMIN:YMAX]

最初に、XMIN と XMAX および YMIN と YMAX をプロットの最小値と最大値に設定します。

次に、 set Lx、たとえば let Lx = 100、次にLyとして設定する必要がありますfloor(100*(YMAX-YMIN)/(XMAX-XMIN)))

この後、シェルスクリプトを使用して余白を削除できます。

于 2013-05-22T21:38:42.780 に答える
1

私があなたを正しく理解していれば、プロットの縦横比を設定したいと考えています。これを行うには、次のようなものを使用します。

set size ratio ASPECT_RATIO

これにより、y 軸の長さを x 軸の長さで割った値 (グラフ単位) が になりASPECT_RATIOます。比率をプロット単位で決定する場合は、 に負の数を使用しますASPECT_RATIO

于 2013-05-20T21:15:48.823 に答える