Проверьте help xrange
и прокрутите вниз ... Думаю, вы ищете это:
set yrange [*<-1:1<*]
Диапазон y будет автоматически масштабироваться, но всегда включает [-1: 1].
Дополнение:
По поводу вашего второго вопроса по поводу белого поля. После построения переменные GPVAL_TERM_YMAX
и GPVAL_TERM_YMIN
содержат значения для нижней и верхней y-координат графика на холсте (или экране или терминале) в «координатах терминала». В pngcairo 20 оконечных устройств имеют размер 1 пиксель. Чтобы увидеть больше переменных, введите show var GPVAL
. Поскольку вы получаете эти значения только после построения , вам необходимо изменить график и соответствующим образом настроить размер терминала. Для метки x вы добавляете немного больше места, например, здесь d=80
. Я добавил светло-серый фон просто для иллюстрации. И мне пришлось немного изменить ваши имена файлов.
Если вы хотите, чтобы ось x находилась в постоянном пиксельном положении изображения, вы можете проверить это: GNUplot - рисовать линию с помощью окна система координат
Код:
### adjust canvas to size of plot
reset session
set encoding utf8
set yzeroaxis lt 1 lc 8 lw 2
set xzeroaxis lt 1 lc 8 lw 2
set xtics pi
set mxtics 6
set ytics 0.5
set grid mxtics ytics lt 1 lc 3 lw 0.5
unset key
set format x '%.0Pπ'
set samples 1600
set offset graph 0.0, graph 0.0, graph 0.1, graph 0.1
set xrange [-4*pi:4*pi]
set size ratio -1
set yrange[*<-1:1<*]
set terminal pngcairo background rgb 0xfcfcfc # background just added for illustration
set lmargin screen 0.03
set rmargin screen 0.97
d = 80
do for [t=1:8]{
A = 0.5*t
do for [b=2:4]{
do for [i=-4:4]{
if(i!=0){
c = 0.5*i
set terminal pngcairo enhanced font 'Cambria' size 1600,900
outfile = sprintf('A=%.1g,b=%.1g,c=%.1g.png',A,b,c)
set output outfile
plot A*sin(b*x)+c lc 7 lw 2
set output
NewHeight = GPVAL_TERM_YMAX - GPVAL_TERM_YMIN + d
set terminal pngcairo enhanced font 'Cambria' size 1600,NewHeight
set output outfile
replot
set output
}
}
}
}
### end of code
Результат: (всего 2 примера из 90 сгенерированных графиков)