企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
# Scilab 的绘图函数 ### plot 函数 最基本的是 plot 函数,与 matlab 中的plot 函数类似。 ~~~ xdata = linspace(1,10,50); ydata = sin(xdata); plot(xdata, ydata); ~~~ ![](https://box.kancloud.cn/2016-01-24_56a423431859d.jpg) 对函数绘图,不需要事先计算出 ydata,比如下面的例子画出的结果是相同的。 ~~~ plot (xdata, sin); ~~~ ![](https://box.kancloud.cn/2016-01-24_56a423431859d.jpg) 这样还能节省些内存占用。 如果只设置总的标题,可以这样操作: ~~~ title("My Plot"); ~~~ ![](https://box.kancloud.cn/2016-01-24_56a423432b5b6.jpg) 如果还要设置XY坐标轴的标题,那么可以这样: ~~~ xtitle("This is a Plot", "x axis", "y axis"); ~~~ ![](https://box.kancloud.cn/2016-01-24_56a423433911d.jpg) 颜色和线型可以通过给plot 添加第三个参数来控制。Legend() 函数可以设置标签。比如下面的例子: ~~~ plot(xdata, sin, "o-r"); plot(xdata, cos, "*--y"); legend("sin", "cos"); ~~~ ![](https://box.kancloud.cn/2016-01-24_56a4234345e4d.jpg) ### 保存图片 一幅图绘制完成之后当然希望能够保存到文件中,scilab 支持相当多的图片格式,下面这些函数每个对应一种图片格式。   <table height="169" width="268"><tbody><tr><td valign="top"><p>xs2png</p></td><td valign="top"><p>xs2fig</p></td></tr><tr><td valign="top"><p>xs2pdf</p></td><td valign="top"><p>xs2gif</p></td></tr><tr><td valign="top"><p>xs2svg</p></td><td valign="top"><p>xs2jpg</p></td></tr><tr><td valign="top"><p>xs2ps</p></td><td valign="top"><p>xs2bmp</p></td></tr><tr><td valign="top"><p>xs2emf</p></td><td valign="top"><p>xs2ppm</p></td></tr></tbody></table>   如果我们希望将 0 号窗口的图形保存为png 格式,那么可以执行下面的语句。 ~~~ xs2png(0, "pic.png"); ~~~ 上面提到了窗口号,在绘图窗口上写着这个数字。Scilab 同时可以显示多个图像窗口,通过窗口号来区分现在操作的是哪个绘图窗口。 ![](https://box.kancloud.cn/2016-01-24_56a423435bcc6.jpg) 很多时候我们希望能够在图像上添加网格,这个操作在MATLAB很容易实现: Grid on 开启网格 Grid off 关闭网格   Scilab 中没有这样的语句,但是可以用如下的语句来代替。  开启网格: ~~~ set(gca(),"grid",[1 1]); ~~~ 关闭网格: ~~~ set(gca(),"auto_clear",[-1 -1]); ~~~ 下面是开启网格之后的效果: ![](https://box.kancloud.cn/2016-01-24_56a423436f2a5.jpg) 设置坐标轴上刻度的字的大小: ~~~ xset("font size", 4); ~~~ ![](https://box.kancloud.cn/2016-01-24_56a423437ad98.jpg) 很悲催,这样设置对标题的字号无效。。。还没有解决办法。  设置图片的背景色: ~~~ xset("background", color); ~~~ 其中 color 为一个整数,表示的是colormap 中的索引。可以用 getcolor() 函数获得当前的colormap。 ~~~ getcolor(); ~~~ ![](https://box.kancloud.cn/2016-01-24_56a423438c12f.jpg) 将背景色设置为绿色 ~~~ xset("background", 3); ~~~ ![](https://box.kancloud.cn/2016-01-24_56a4234399757.jpg) (未完待续)