2012-06-07 4 views
2

Привет Все вы прекрасные люди на StackOverflow,Gnuplot: строка 1: неправильная команда

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

Мой код, который создает .dat Файл-

#!/usr/bin/python 

file = open("test_m.rdb") 
table = open('table.dat', 'w+') 

trash = file.readline() 

trash = file.readline() 

data = file.readline() 
i = data.split() 
flux = i[2] 
observed = i[4] 
table.write(flux + " " + observed,) 

while 1: 
    line = file.readline() 
    i = line.split() 
    try: 
     flux = i[2] 
     observed = i[4] 
    except IndexError: 
     break 
    table.write("\n" + flux + " " + observed) 
    table.close() 

Команда, которую я пытаюсь использовать в Cygwin и в error-

gnuplot plot table.dat 

0.058 2 
^ 
"table.dat", line 1: invalid command 

Спасибо заранее. Я ценю любые предложения, которые вы можете предложить.

ответ

3

вы, вероятно, хотите:

gnuplot --persist -e 'plot "table.dat" u 1:2' 

С вашей команды, Gnuplot ищет команды для запуска в файле под названием «участок», а затем в файле с именем «table.dat». «table.dat» не имеет команд для запуска, он имеет данные, которые будут отображаться. использование «-e» - это то же самое, что положить материал в одиночные цитаты во временный файл (назовите его temp.gp), а затем сделать gnuplot temp.gp. --persist делает так, чтобы сюжет оставался на вашем экране (что вам нужно, так как я сомневаюсь, что вы сохраняете его в файле). Чтобы узнать, как сохранить его в файле, внутри gnuplot выполните следующие действия: help set term и help set output и set term.

EDIT

Я много о Cygwin не знаю, так что я не знаю, что терминал по умолчанию (или то, что терминалы будут включены).

несколько вещей, чтобы попробовать:

gnuplot -e 'plot "table.dat" u 1:2; pause -1' #this should leave your plot open until you hit return 

Поместите команды в файле

#tmp.gp 
set term postscript enh color 
set output "tmp.ps" 
plot "table.dat" u 1:2 

Теперь запустите его:

gnuplot tmp.gp 

, а затем откройте приписку с помощью любого инструмента вам есть для просмотра postscripts - я часто использую gv, но я не знаю, что есть на cygwin.

gv tmp.ps & 
+0

Спасибо, Cygwin дает мне эту ошибку, когда я пытаюсь что command- 0 [главная] Gnuplot 7176 исключение :: Ручка: Исключение: STATUS_ACCESS_VIOLATION 4903 [главная] Gnuplot 7176 open_stackdumpfile: Сброс трассировки стека gnuplot.exe .stackdump gnuplot: не удалось открыть дисплей '' gnuplot: X11 отменен. – marie

+0

Еще раз спасибо за помощь. Оба варианта дают мне ту же ошибку «невозможно открыть дисплей». Возможно ли, что что-то не имеет прав, необходимых для открытия дисплея? – marie

+0

Со вторым вариантом вы получили файл с именем tmp.ps в текущем каталоге? ('ls' скажет вам, есть он там или нет). Если у вас есть 'gv', разумно, что он будет жаловаться так же, как gnuplot, если файл существует, если ваша среда cygwin не настроена должным образом для использования X11 (вам нужно, чтобы google вокруг, как исправить это, хотя -- Понятия не имею). – mgilson

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