gnuplot - `set xrange [x_min:x_max]` ограничивает диапазон, используемый для подгонки функции?

Простой вопрос - диапазон, отображаемый на графике, можно изменить с помощью команды set xrange [x_min:x_max].

Ограничивает ли эта команда также диапазон, используемый при подборе функции с помощью инструментов подбора данных в gnuplot? Есть ли способ вручную указать диапазон, используемый для подгонки функций? (Можно предположить, что это команда every? Нужно ли переопределять xrange с помощью every?)

Причина, по которой я спрашиваю, заключается в том, что я использую xrange для отображения выходных данных, увеличенных в области x с низким значением, чтобы более четко увидеть переходное поведение, но я думаю, что это может быть "отсечение" значений от функции, подходящей для больших значений x за пределами xrange. регион выбран?


person FreelanceConsultant    schedule 29.06.2015    source источник


Ответы (2)


Это старый вопрос, но текущий ответ неверен: текущие настройки xrange действительно влияют на диапазон, используемый для подгонки, если явный диапазон не указан как часть команды подгонки. В этом легко убедиться на простом примере: если у вас есть файл данных test.dat, содержащий

1 1
2 2
3 3
4 4
5 6
6 8
7 10
8 12

и используйте линейную подгонку, вы получите

fit a+b*x "test.dat" via a,b
plot "test.dat" w p, a+b*x w l

введите описание изображения здесь

и подходящие параметры (a,b)=(-1,42, 1,59). Однако, если вы сначала установите xrange, вы получите

set xrange [4:8]
fit a+b*x "test.dat" via a,b
plot "test.dat" w p, a+b*x w l

введите описание изображения здесь

и подходящие параметры (a,b)=(-4,2).

Это, по крайней мере, текущее поведение gnuplot 5.2, но эта старая ветка от 2009 года предполагает, что такое поведение существовало уже довольно давно.

person user8153    schedule 10.12.2017

set xrange [x_min:x_max] не влияет на диапазон, используемый при подгонке функции.

С помощью команды fit (то же самое относится и к plot) вы можете явно ограничить диапазон, чтобы он подходил для переменной, используя следующий синтаксис:

[{dummy_variable=}{<min>}{:<max>}]

Например, вы можете ограничить диапазон для оси X с помощью:

fit [min:max] f(x) "filename"
person mziccard    schedule 29.06.2015