有没有一种快速的方法来绘制Scilab中的多个图

时间:2017-01-06 22:32:16

标签: plot scilab

现在我正在阅读一个文件夹并获取一些情节日志。我有大约95个,然后我解析日志和plot2d,然后在日志中的位置上设置一个块的动画。要花几分钟才能打开所有的情节窗口。我目前正在使用scf打开一个新的绘图窗口。 它没有进入第95个绘图并且没有做任何动画,所以它似乎在结束之前就已经死了,但是控制台上没有输出。 我正在使用Scilab 6.0

这就是我创建情节的方式。我根据文件夹中有多少日志来迭代这个。

scf(newFolderIndex); 
plot2d(xPosition,yPosition) 
xtitle(logFolders(newFolderIndex))  

1 个答案:

答案 0 :(得分:3)

我认为你真的不需要100多个窗口,你无法有效地查看它们。 你可以做2件事来防止冻结,也许可以加快这个过程: 只打开一个图形窗口(比如0),然后: 1.绘制数据 2.保存到文件 3.清除差距窗口 4.从1开始重复。

为了加快绘图过程,您可以延迟drawlater()屏幕上的实际显示,直到绘制完最后一个图形元素,然后发出drawnow()。如果你有很多数据点,特别是多个plot()命令,这可能会产生显着的差异。

for i=1:3
  scf(0);   //set current figure
  clf(0);   //clear figure
  drawlater();  //inhibit actual display on the screen
  plot2d(rand(100,1),rand(100,1),style=-4);
  xtitle(string(i));
  drawnow();    //display now
  xs2png(0,"D:\Attila\PROJECTS\Scilab\Stackoverflow\"+string(i)+".png");    //save to file
  //there are other file formats also, search for xs2jpg, xs2gif...
end

使用图像查看器程序观察保存的文件比在多个图形窗口之间切换更方便。 该方法的另一个优点是,如果您调整图形窗口的大小并重新运行程序,则所有图形将具有相同的大小。 (但当然您可以使用f=gcf(); f.figure_size=[200,200];

明确指定窗口大小