2015-08-04 7 views
1

У меня есть сценарий Gnuplot, который рисует 2 кривых из файла данных. Если я не укажу yrange, Gnuplot устанавливает его так, чтобы все точки обеих кривых соответствовали фигуре. В моем случае я хотел бы, чтобы Gnuplot заботился только об одной из кривых (неважно, выходит ли другой из диапазона, поскольку меня интересуют только части фигуры, где вторая кривая приближается к первой).Установка gnuplot yrange только для одной кривой

Я мог узнать минимальное и максимальное значения, принятые первой кривой, и вручную установить значения этих значений, но мой сценарий Gnuplot предназначен для автоматического запуска во многих файлах данных, создавая множество цифр, для которых yrange не является то же самое, поэтому я ищу способ сделать это автоматически.

Благодаря

ответ

2

Есть различные варианты, в зависимости от используемой версии GNUPLOT:

Version 5.0:

Файл данных, которые должны быть исключены из автомасштабирования получает noautoscale параметра:

plot 'first.dat' using 1:2, 'second.dat' using 1:2 noautoscale 

Версия> = 4. 6:

Используйте команду stats, чтобы получить минимальное и максимальное значение relavant файла данных:

stats 'first.dat' using 1:2 
set yrange [STATS_min_y:STATS_max_y] 
plot 'first.dat' using 1:2, 'second.dat' using 1:2 

По крайней мере, начиная с 4,0:

Используйте set yrange [] writeback, чтобы сохранить autoscaled диапазоны от команду участка и set yrange restore, чтобы использовать их для последующего участка:

set terminal push 
set terminal unknown 

set yrange [] writeback 
plot 'first.dat' using 1:2 

set yrange restore 
set terminal pop 
plot 'first.dat' using 1:2, 'second.dat' using 1:2 
Смежные вопросы