Gnuplot: как построить несколько временных рядов из двоичного формата - PullRequest
2 голосов
/ 25 февраля 2012

Может, кто-нибудь объяснит двоичный формат gnuplot?

Цель состоит в том, чтобы построить два временных ряда из двоичного канала в виде линейных графиков на одном графике. Серия - это float64. Я использую что-то вроде:

plot "-" binary format="%float64" endian=big with lines

Однако я не понимаю, в каком порядке должны поступать данные. В приведенном выше примере я могу указать array=10 и указать 10 чисел; это работает. Однако как насчет двух серий? А что если они проиндексированы по-разному?

Заранее спасибо.

1 Ответ

2 голосов
/ 26 марта 2012

Вы можете использовать это для двух серий:

plot "-" binary format="%float64" record=10 endian=big with lines, 
     "-" binary format="%float32" record=20 endian=big with lines

Я рекомендовал вам использовать record вместо array, таким образом, вы можете вручную указать или управлять значением оси X с помощью команды using ($0*2):1.

Если они проиндексированы по-разному, например, с чересстрочной разверткой, то нет способа указать это для gnuplot. Просто скопируйте в канал информацию дважды и проигнорируйте неиспользуемую часть с помощью *:

plot "-" binary format="%float64%*float32" record=20 endian=big with lines, 
     "-" binary format="%*float64%float32" record=20 endian=big with lines

В любом случае, gnuplot не позволяет представлять два графика с одними и теми же входными данными, поэтому данные должны копироваться дважды в большинстве случаев.

Надеюсь, это поможет!

...