LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 2172|回复: 21

请问如何用脚本控制gnuplot进行实时的plot[未解决]

[复制链接]
发表于 2004-4-11 11:20:25 | 显示全部楼层 |阅读模式
我的意思是如何用脚本对gnuplot进行互交式的控制。
而不是把batch命令写进一个文件,然后用 gnuplot 文件  的方式?
因为这样似乎不能实时的刷新。

是不是要把stdin 或 stdout 重新定向一下?
然后再用类似的互交的方式对gnuplot输入命令

但是我试了一下,总是一刷而过无法停下来。
即使用了pause -1 也不行

望高手给予指点。
发表于 2004-4-11 11:41:13 | 显示全部楼层
gnuplot是什么?呵呵~~~:p
发表于 2004-4-11 11:48:48 | 显示全部楼层
不知道gnuplot怎么化
但我用expect做了一个对IDL进行类似处理的
你可以了解一下expect
发表于 2004-4-11 11:53:02 | 显示全部楼层
最初由 home_king 发表
gnuplot是什么?呵呵~~~:p

http://gnuplot.sourceforge.net/
 楼主| 发表于 2004-4-11 11:54:51 | 显示全部楼层
大侠们,能不能说正事呀,不要扯远了
发表于 2004-4-11 13:10:33 | 显示全部楼层
最初由 onlyclimb 发表
大侠们,能不能说正事呀,不要扯远了

真不知道这个gnuplot是作什么用的 :ask
下一个看看到底是什么好东东
发表于 2004-4-11 13:15:23 | 显示全部楼层
最初由 onlyclimb 发表
大侠们,能不能说正事呀,不要扯远了

在下真的没有用过gnuplot,所以无从入手。但解决非交互式问题,就应该使用expect。
发表于 2004-4-11 13:34:00 | 显示全部楼层
最初由 javalee 发表
真不知道这个gnuplot是作什么用的 :ask
下一个看看到底是什么好东东

不会用   要不到
软件讨论区看看吧 :sorry
发表于 2004-4-11 15:29:59 | 显示全部楼层
gnuplot是数据作图用的
做科学研究方面的这个用的很多

强烈建议参考一下expect,尽量让工作自动化,省出时间玩

我的一个自动下载合并数据并画图的脚本
#!/usr/bin/expect
#Li HM lihm0@163.com
set timeout -1
set id [lindex $argv 0]
spawn date +%d-%m-%y-%H-%M
expect
set LDIR [string range $expect_out(buffer) 0 13]
set LDIR "/home/eagle/tmp/sem/$LDIR"
spawn mkdir $LDIR
send "cd $LDIR\r"
log_user 0
spawn ftp sunshine
expect "Name"; send "\r"
expect "ftp>"; send "quote authenticate lihm\r"
expect "password"; send "quote response mypasswd\r"
expect "ASS"; send "user lihm@nfe\r"
expect "assword:"; send "mypasswd\r"
log_user 1
expect "logged"; send "prompt\r"
expect "off"; send "cd $id\r"
expect "succ"; send "lcd $LDIR\r"
expect "now"; send "mget *.gz\r"
expect "complete"; send "bye\r"
#以上取下数据
spawn $env(HOME)/script/semcomb $LDIR #合并处理数据
sleep 5
#调用idl进行数据绘图
cd $env(HOME)/idl
spawn idl
expect "IDL>"; send ".r SEM\r"
expect "IDL>"; send "exit\r"
#绘图完毕,把看图软件调出来,以便检测结果
cd $env(HOME)/data
exec gqview

以上是主程序
下面分程序semcomb
#!/bin/bash
DATAFILE=$HOME/data/tmpdata.dat
rm -f $DATAFILE
cd "$1"
tar zxvf sem.tar.gz
sed -e '/^Start/q' Au?000-*\ 0.dat >$DATAFILE
for j in \  1 2 3 4 5 6 7 8 9
do
    for i in Au?000*$j[0-9].dat
    do
        if [ -f "$i" ]
        then
            sed -f $HOME/script/semdata.sed "$i" >>$DATAFILE
        fi
    done
done
rm -rf Au?000-*.dat

sed脚本semdata.sed
#Script Name: semdata.sed
#combine sem data and delete common head
1,/^Start/d
${
    /.\{42\}/!d
}

本想用expect和tcl完成一个程序,不需要另外的semcomb结果,边学边改,出错太多,放弃。现在倾向于怎么方便怎么算。
发表于 2004-4-11 15:40:58 | 显示全部楼层
gnuplot很好玩的。
举个最简单的例子,用gnuplot命令在终端启动,出现提示符:
gnuplot>
在后面输入 plot x**2
enjoy
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表