2016-07-06 2 views
0

У меня есть следующие ошибки при использовании кода.Ошибка Gnuplot с awk в команде plot

gnuplot> set terminal epslatex size 13.1cm,6cm color colortext 
Terminal type set to 'epslatex' 
Options are ' leveldefault color colortext \ 
    dashed dashlength 1.0 linewidth 1.0 butt noclip \ 
    nobackground \ 
    palfuncparam 2000,0.003 \ 
    input size 13.10cm, 6.00cm "" 11 fontscale 1.0 ' 
gnuplot> set output 'C:\MajCha\gnuplot\alpha_cl.tex' 
gnuplot> filename= 'C:\MajCha\gnuplot\DU_08-W-180-65_cf_c_02_InpPrePro.txt' 
gnuplot> # 
gnuplot> set xrange [-10:10] 
gnuplot> set yrange [-3:3] 
gnuplot> plot "< awk '$1==-180.0 { print $2, $3 }'" filename using 2:3 
     warning: Skipping unreadable file "< awk '$1==-180.0 { print $2, $3 }'" 
     No data in plot 

gnuplot> # 
gnuplot> unset output 
gnuplot> reset 

Как я могу исправить эту error.I хочет проверить я сделал § 1 = -180 в диапазоне петли от -180 до 180. Пожалуйста, предложите мне некоторые возможные способы сделать.

С помощью следующего кода

reset 
set terminal epslatex size 13.1cm,6cm color colortext 
set output 'C:\MajCha\gnuplot\alpha_cl.tex' 
filename= 'C:\MajCha\gnuplot\DU_08-W-180-65_cf_c_02_InpPrePro.txt' 
# 
unset key 
set xrange [-10:10] 
set yrange [-3:3] 
plot for [i=-180:180] filename using (($1==i)?$2:1/0):3 
# 
unset output 
reset 

Выходной показатель enter image description here С помощью следующего кода

reset 
set terminal epslatex size 13.1cm,6cm color colortext 
set output 'C:\MajCha\gnuplot\alpha_cl.tex' 
filename= 'C:\MajCha\gnuplot\DU_08-W-180-65_cf_c_02_InpPrePro.txt' 
# 
unset key 
set xrange [-10:10] 
set yrange [-3:3] 
plot for [i=-180:180] filename using (($1==i)?$2:1/0):3 with lines 
# 
unset output 
reset 

выход цифра enter image description here

+1

Вам понадобится следующий синтаксис: 'участок«

+0

Это поможет, если вы сможете показать часть своих данных и быть конкретными о результатах, которые вы хотите получить. –

+1

'awk' - это инструмент командной строки, который не является частью gnuplot и который у вас, вероятно, отсутствует в вашей системе Windows. – Christoph

ответ

1

Поскольку filename является Gnuplot переменная в вашем MWE, что лет и может сделать это сцепить его содержимое команды AWK:

plot "<awk '$1==-180.0 { print $2, $3 }' ".filename using 1:2 

Не пропустите символ пробела перед закрытием ": это будет оценивать команду

awk '$1==-180.0 { print $2, $3 }' C:\MajCha\gnuplot\DU_08-W-180-65_cf_c_02_InpPrePro.txt 

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

Обратите внимание, что поскольку ваши awk команд печатает только $2 и $3, его выход состоит из 2-х колонок, так что вы, вероятно, хотите using 1:2 в Gnuplot.

Наконец, если это MWE близка к тому, что вы действительно хотите достичь, я бы посоветовал отказаться от AWK и использовать Gnuplot команды только для простоты:

plot filename using (($1==-180)?$2:1/0):3 
+0

Я использовал следующую команду, и это просто заглавные заголовки, но нет графика plot для [i = -180: 180] filename, используя (($ 1 == i)? $ 2: 1/0): 3 с линиями –

+1

Таким образом, у вас будет 361 график, все целые числа i в [-180,180], поэтому если вы не используете 'unset key', вы ничего не увидите. Затем вы должны опубликовать некоторые свои данные, чтобы понять, почему, если проблема сохраняется. – Joce

+0

Я отредактировал мой вопрос, пожалуйста, посмотрите –

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