作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 gnuplot 脚本通过这样调用来绘制一些数据:
gnuplot -p -c script.plt first.dat
script.plt 看起来像这样:
set grid
set yrange [0:1000]
set xrange [-1:6]
set xtic 1 rotate 90
plot ARG1 using (column(0)):2:3:4:xtic(1) with yerrorbars
我想传入更多数据并将它们全部绘制在同一个图形上:
gnuplot -p -c script.plt first.dat second.dat
我可以通过以下方式实现:
set grid
set yrange [0:1000]
set xrange [-1:6]
set xtic 1 rotate 90
plot ARG1 using (column(0)):2:3:4:xtic(1) with yerrorbars, \
ARG2 using (column(0)):2:3:4:xtic(1) with yerrorbars
但是我如何传入任意数量的数据来绘制呢?
gnuplot -p -c script.plt first.dat second.dat third.dat
gnuplot -p -c script.plt first.dat second.dat third.dat fourth.dat ...
我知道可以使用 plot 进行迭代,但是是否可以对 ARGS 进行迭代?像这样的东西:
plot for [arg in ARGS] arg using (column(0)):2:3:4:xtic(1) with yerrorbars
最佳答案
Gnuplot 最多只支持 10 个 ARG
变量,即 ARG0, ..., ARG9
(即使 ARGC
变量不受限制这样)。作为解决方法,您可以将所有文件作为以空格分隔的字符串(假设您的文件名不包含空格字符)作为第一个参数传递
gnuplot -c script.plt "file1.dat file2.dat"
然后在 Gnuplot 中“解析”它:
plot for [i=1:words(ARG1)] word(ARG1, i) ...
编辑:
或者,可以将所有参数聚合到一个数组中(假设是最新版本的 Gnuplot),然后在 plot
语句中使用该数组:
N = (9 < ARGC)?9:ARGC
array ARGV[N]
do for [i=1:N] {
eval sprintf("ARGV[%d] = ARG%d", i, i);
}
print "found ", |ARGV|, " arguments"
plot for [i=1:|ARGV|] ARGV[i] ...
关于gnuplot - 使用 gnuplot,如何迭代 ARG1、ARG2、ARGN?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49857709/
我正在使用 gnuplot 脚本通过这样调用来绘制一些数据: gnuplot -p -c script.plt first.dat script.plt 看起来像这样: set grid set yr
我想在 JAVA 运行时创建一个函数。 我想要一些类似于 java Scripts 的东西: new Function([arg1[, arg2[, ...argN]],] functionBody)
我是一名优秀的程序员,十分优秀!