Scilab 的绘图函数(1)
最后更新于:2022-04-01 07:32:09
# Scilab 的绘图函数
### plot 函数
最基本的是 plot 函数,与 matlab 中的plot 函数类似。
~~~
xdata = linspace(1,10,50);
ydata = sin(xdata);
plot(xdata, ydata);
~~~
![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/2016-01-24_56a423431859d.jpg)
对函数绘图,不需要事先计算出 ydata,比如下面的例子画出的结果是相同的。
~~~
plot (xdata, sin);
~~~
![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/2016-01-24_56a423431859d.jpg)
这样还能节省些内存占用。
如果只设置总的标题,可以这样操作:
~~~
title("My Plot");
~~~
![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/2016-01-24_56a423432b5b6.jpg)
如果还要设置XY坐标轴的标题,那么可以这样:
~~~
xtitle("This is a Plot", "x axis", "y axis");
~~~
![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/2016-01-24_56a423433911d.jpg)
颜色和线型可以通过给plot 添加第三个参数来控制。Legend() 函数可以设置标签。比如下面的例子:
~~~
plot(xdata, sin, "o-r");
plot(xdata, cos, "*--y");
legend("sin", "cos");
~~~
![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/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://docs.gechiui.com/gc-content/uploads/sites/kancloud/2016-01-24_56a423435bcc6.jpg)
很多时候我们希望能够在图像上添加网格,这个操作在MATLAB很容易实现:
Grid on 开启网格
Grid off 关闭网格
Scilab 中没有这样的语句,但是可以用如下的语句来代替。
开启网格:
~~~
set(gca(),"grid",[1 1]);
~~~
关闭网格:
~~~
set(gca(),"auto_clear",[-1 -1]);
~~~
下面是开启网格之后的效果:
![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/2016-01-24_56a423436f2a5.jpg)
设置坐标轴上刻度的字的大小:
~~~
xset("font size", 4);
~~~
![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/2016-01-24_56a423437ad98.jpg)
很悲催,这样设置对标题的字号无效。。。还没有解决办法。
设置图片的背景色:
~~~
xset("background", color);
~~~
其中 color 为一个整数,表示的是colormap 中的索引。可以用 getcolor() 函数获得当前的colormap。
~~~
getcolor();
~~~
![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/2016-01-24_56a423438c12f.jpg)
将背景色设置为绿色
~~~
xset("background", 3);
~~~
![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/2016-01-24_56a4234399757.jpg)
(未完待续)