GNUPLOT: Как установить автоматический размер бумаги при сохранении правильного соотношения сторон?

Я использую 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, а не как квадрат или что-то еще. Я не хочу, чтобы фигура как-то растягивалась.

0

Решение

Если я вас правильно понимаю, вы хотите установить соотношение сторон вашего сюжета. Для этого вы хотите использовать что-то вроде:

set size ratio ASPECT_RATIO

это сделает так, чтобы длина оси y, деленная на длину оси x (в единицах графика), была равна ASPECT_RATIO, Если вы хотите, чтобы соотношение определялось в единицах графика, вы должны использовать отрицательное число для ASPECT_RATIO,

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 на минимальное и максимальное значения графиков.

Затем установите Lxскажи пусть Lx = 100, затем Ly должен быть установлен как floor(100*(YMAX-YMIN)/(XMAX-XMIN))),

После этого можно использовать какой-нибудь сценарий оболочки для удаления полей.

1

По вопросам рекламы [email protected]