我试图在同一个地块中绘制任意数量的线条。我的数据文件如下:
1 10 15 20
2 20 25 30
3 30 35 40
4 40 45 50
5 50 55 60
我使用multiplot来做到这一点:
set multiplot
do for [i=1:ny] {
plot 'data.dat' u 1:i+1 with lines lc i title word(names,i)
}
unset multiplot
此示例中的ny=3
。正如预期的那样,每个图的yrange是不同的,因此图形看起来非常混乱。我试图添加
set yrange [ymin:ymax]
其中ymin=min(col2,col3,col4,...,coln)
是所有列中的最小值2-n,ymax
是最大值。但是,我仍然不知道如何获得ymin
和ymax
。函数stats
允许我同时获得一列或两列的最小值和最大值,但不能更多。即使我逐列完成,我仍然不知道如何在n个标量中获得最大值。
有什么想法吗?
答案 0 :(得分:0)
通常,多重绘图不是用于在一个图形中绘制多个绘图,而是用于在彼此之下绘制多个绘图。我想你想在plot
命令内迭代:
plot for [i=1:ny] 'data.dat' u 1:i+1 with lines lc i title word(names, i)
这使用涵盖所有子图的值的范围。它得到了正确的关键。
答案 1 :(得分:0)
你可以使用if语句,这里是代码:
ymin=1000 #set ymin to a very large value
ymax=0 #set ymax to a very small value
do for [i=1:ny] {
stats "data.dat" u i+1
if (STATS_min < ymin) {ymin=STATS_min}
if (STATS_max > ymax) {ymax=STATS_max}
}