在gnuplot命令中使用变量限制"如果从python脚本调用,则设置yrange [min:max]

时间:2014-11-20 12:01:44

标签: python gnuplot

我有python脚本,其输入参数为最小和最大y范围,我想相应地绘制图形

  

test.py -m miny -i maxy

在python脚本中 gnuplotcmds.append('set yrange [miny:maxy]')

我的问题是,如何在gnuplot命令中使用变量限制,因为在运行此行时它始终读取miny和maxy作为字符串而不是变量?

2 个答案:

答案 0 :(得分:2)

如果minymaxy是python变量,则必须使用类似

的内容
gnuplotcmds.append('set yrange[{0}:{1}]'.format(miny, maxy)

如果你想要一个紧凑的yrange,你也可以使用

gnuplotcmds.append('set autoscale yfix')

答案 1 :(得分:0)

首先,您必须在python中解析命令行中的值:

import sys

miny=0.0
maxy=0.0
for i in len(sys.argv)-1:
    if(sys.argv[i] == "-m"):
        miny=float(sys.argv[i+1])
    if(sys.argv[i] == "-i"):
        maxy=float(sys.argv[i+1]

这是一种非常简单的方法,但它不会检查您的参数。例如,如果命令行中-i后没有数字,则会遇到麻烦。有更复杂的方法,比如getopts模块,但是现在,这段代码完成了这项工作。

正如在Christhoph的回答中,您现在可以使用

gnuplotcmds.append('set yrange[{0}:{1}]'.format(miny, maxy)