有没有一种快速的方法来在 Scilab 中绘制多个图
is there a fast way to plot multiple plots in Scilab
现在我正在读取一个文件夹并获取一些情节日志。我有大约 95 个,然后我解析日志和 plot2d,然后在日志中的位置上动画一个块。打开所有地块 windows 需要几分钟时间。我目前正在使用 scf 打开一个新地块 window。
它没有到达第 95 个情节,也没有做任何动画,所以它似乎在结束前就快要死了,但控制台上没有输出。
我正在使用 Scilab 6.0
这就是我创建情节的方式。我根据文件夹中的日志数量遍历它。
scf(newFolderIndex);
plot2d(xPosition,yPosition)
xtitle(logFolders(newFolderIndex))
我认为你并不需要 100+ windows,你无法高效地查看它们。
你可以做两件事来防止冻结并可能加快这个过程:
只打开一个图形window(比如说0),然后:
1.绘制数据
2.保存到文件
3. 清除图形 window
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\Whosebug\"+string(i)+".png"); //save to file
//there are other file formats also, search for xs2jpg, xs2gif...
end
使用图像查看器程序观看保存的文件比在多个图形之间切换要方便得多windows。
该方法的另一个优点是,如果您调整图形 window 的大小并重新运行程序,所有图形的大小都将相同。 (当然,您可以使用 f=gcf(); f.figure_size=[200,200];
明确指定 window 大小)
现在我正在读取一个文件夹并获取一些情节日志。我有大约 95 个,然后我解析日志和 plot2d,然后在日志中的位置上动画一个块。打开所有地块 windows 需要几分钟时间。我目前正在使用 scf 打开一个新地块 window。 它没有到达第 95 个情节,也没有做任何动画,所以它似乎在结束前就快要死了,但控制台上没有输出。 我正在使用 Scilab 6.0
这就是我创建情节的方式。我根据文件夹中的日志数量遍历它。
scf(newFolderIndex);
plot2d(xPosition,yPosition)
xtitle(logFolders(newFolderIndex))
我认为你并不需要 100+ windows,你无法高效地查看它们。 你可以做两件事来防止冻结并可能加快这个过程: 只打开一个图形window(比如说0),然后: 1.绘制数据 2.保存到文件 3. 清除图形 window 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\Whosebug\"+string(i)+".png"); //save to file
//there are other file formats also, search for xs2jpg, xs2gif...
end
使用图像查看器程序观看保存的文件比在多个图形之间切换要方便得多windows。
该方法的另一个优点是,如果您调整图形 window 的大小并重新运行程序,所有图形的大小都将相同。 (当然,您可以使用 f=gcf(); f.figure_size=[200,200];
明确指定 window 大小)