GNU строит только первый из двух графиков - PullRequest
0 голосов
/ 28 августа 2018

Я пытаюсь нанести линейный график и график ошибок на одном графике. Я нашел множество примеров в Интернете, поэтому я предположил бы, что это должно быть тривиально. Однако у меня возникли проблемы с этим. По сути, у меня есть файл plot.dat, который содержит:

set title "name" font "Helvetica, 20"
  set xlabel "xname" font "Helvetica, 20"
  set ylabel "yname" font "Helvetica, 20"
  set xrange [    0.00000: 100.00000]
  plot '-' u 1:2 with lines, '-' u 1:2:3 with yerrorbars
     1.00000        13787.5        318.595    
     3.00000        33561.5        349.861    
     5.00000        52866.6        412.335    
     7.00000        71501.0        469.513    
     9.00000        90352.7        522.629    
     11.0000        109163.        571.996    
     13.0000        127642.        617.996    
     15.0000        147510.        661.706    
     17.0000        166395.        701.951    
     19.0000        185247.        739.308    
     21.0000        203929.        774.973    
     23.0000        223604.        811.215    
     25.0000        245035.        845.310    
     27.0000        267404.        881.029    
     29.0000        293466.        920.162    
     31.0000        321489.        957.751    
     33.0000        361064.        1005.69    
     35.0000        413496.        1065.30    
     37.0000        510098.        1161.29    
     39.0000        765350.        1365.36    
     41.0000        348426.        953.718    
     43.0000        43834.8        351.409    
 e 

Я строю это с помощью load 'plot.dat'. Я ищу график, где я вижу панели ошибок, а точки связаны линией. Тем не менее, я получаю линейный график без полос ошибок и предупреждающее сообщение:

"plot.dat", line 55: warning: Skipping data file with no valid points

Как будто половина графика работает, а другая - нет.

Что я делаю не так?

1 Ответ

0 голосов
/ 28 августа 2018

Каждый раз, когда вы обращаетесь к псевдофайлу '-', он читает из входного потока. У вас есть только одна копия данных во входном потоке. Первый график потребляет его, не оставляя данных для второго графика. Вам нужно либо предоставить две копии данных во входном потоке, либо поместить их в место, которое можно прочитать несколько раз. Т.е. либо в файле, либо в блоке данных. Решение для блока данных показано ниже:

$DATA << EOD
     1.00000        13787.5        318.595    
     3.00000        33561.5        349.861    
     5.00000        52866.6        412.335    
     7.00000        71501.0        469.513    
     9.00000        90352.7        522.629    
     11.0000        109163.        571.996    
     13.0000        127642.        617.996    
     15.0000        147510.        661.706    
     17.0000        166395.        701.951    
     19.0000        185247.        739.308    
     21.0000        203929.        774.973    
     23.0000        223604.        811.215    
     25.0000        245035.        845.310    
     27.0000        267404.        881.029    
     29.0000        293466.        920.162    
     31.0000        321489.        957.751    
     33.0000        361064.        1005.69    
     35.0000        413496.        1065.30    
     37.0000        510098.        1161.29    
     39.0000        765350.        1365.36    
     41.0000        348426.        953.718    
     43.0000        43834.8        351.409    
EOD

plot $DATA u 1:2 with lines, $DATA u 1:2:3 with yerrorbars
...