2013-09-25 3 views
1

Я создал граф с помощью gnuplot с помощью следующей команды:Как gnuplot понимает аргументы командной строки из stdin?

echo 'plot [0:14][0:1000] "source_data_file" with steps title "example graph"; pause 15' | gnuplot 

Я хотел бы изменить название Х- и Y-оси с xlabel и ylabel аргументами, но если я выполняю:

echo 'plot [0:14][0:1000] "source_data_file" with steps title "example graph" xlabel 'X-axe label' ylabel 'Y-axe label'; pause 15' | gnuplot 

.. Получаете сообщение об ошибке, указывающее xlabel. Я попытался отделить аргументы с точкой с запятой, но это не повлияло. Кроме того, я хотел бы изменить формат Y-ax от экспоненты (например, 1.8232e + 06) до целых чисел (например, 1823200), но я не знаю, как передать аргумент gnuplot аргументу format y/format x.

Как gnuplot понимает аргументы командной строки, если они переданы gnuplot из stdin?

+1

У вас проблема с кавычками. В зависимости от вашей оболочки способ решения проблемы может отличаться. Точно, вы используете одинарные кавычки для меток, но они должны быть в одной кавычной строке ... –

+0

@arbautjc Не могли бы вы объяснить это немного больше. Что вы подразумеваете под словом «они должны быть в одной кавычки»? ИМХО они уже находятся в однокасканных строках. Или вы имели в виду, что «они должны быть в строке с двумя кавычками»? – Martin

ответ

2

@arbautjc правильный - у вас есть проблема с использованием одинарных кавычек для меток оси x и y. Кроме того, они должны быть указаны до выполнения команды plot. Таким образом, лучше всего было бы

echo 'set xlabel "X-axe label"; set ylabel "Y-axe label"; plot [0:14][0:1000] "source_data_file" with steps title "example graph"' | gnuplot -p 

Кроме того, это команда pause необходимо? (Возможно, у вас есть какая-то причина, но я не вижу этого в вашем примере.)

+0

Я использовал 'pause 15', чтобы сохранить сгенерированный график открытым в течение 15 секунд. В противном случае окно графика немедленно закроется. Однако команда, которую вы предоставили, не работала с моим gnuplot 4.4 (patchlevel 3). Я получаю сообщение об ошибке «строка 0: недействительная команда». – Martin

+0

Я изменил «echo» xlabel «X-ax label»; ярлык «Y-ax label»; plot [0:14] [0: 1000] "source_data_file" с заголовком шагов "примерный граф"; пауза 15 '| gnuplot' 'echo 'установить xlabel" X-ax label "; set ylabel "Y-ax label"; plot [0:14] [0: 1000] "source_data_file" с заголовком шагов "примерный граф"; пауза 15 '| gnuplot', и теперь он работает так, как мне было нужно. Благодаря! – Martin

Смежные вопросы