Scilab 的画图函数(3)

我们在做数据画图或函数图像时常常须要使用对数坐标系。尤其是数据的范围跨越非常多个数量级时。通常的线性坐标系下无法表现出数据特征。

Scilab 中Plot函数无法画出对数坐标。须要使用 plot2d 函数。

plot2d 函数的基本使用方法例如以下:

plot2d([logflag,][x,],y[,style[,strf[,leg[,rect[,nax]]]]])

plot2d([logflag,][x,],y,<opt_args>)

以下是一个简单的样例:

iter = linspace(0,10,11);
err = 10.^(-iter);
plot2d("nl", iter, err, style=2);
set(gca(),"grid",[1 1]);

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbGl5dWFuYmh1/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" >

这个样例假设在普通的坐标系下看,是这个样子的:

plot(iter,err);
set(gca(),"grid",[1 1]);

因为数据非常快就非常接近0了。在图中非常难看出后面的趋势。

以下来具体的解说一下plot2d函数。

plot2d("nl", iter, err, style=2);

“nl” 表示,横坐标为正常的模式(normal),纵坐标为对数(log).

Style = 2 表示的是曲线的颜色。2 表示的是colormap 中的第二项,也就是蓝色。

假设是负数。则表示用不同的线型。假设既要设置曲线的颜色,又要设置线型,那么。

。。临时还没搞定。

以下再给一个样例,通过rect參数控制xy的范围:

x=[0:0.1:2*%pi]';
plot2d(x,[sin(x) sin(2*x) sin(3*x)],rect=[0,0,6,0.5]);

有点跑题了,接着介绍对数坐标系画图。

以下再给一个样例:

ind = linspace(0,6,7);
iter = 10.^ind;
err1 = 10.^(-ind);
err2 = (10.^(-ind)).^2;
xset("font size", 4);
plot2d("ll", iter, err1, style=2);
plot2d("ll", iter, err2, style=3);
title("Loglog","fontsize", 4);
xlabel("Iterations","fontsize", 4);
ylabel("Error","fontsize", 4);
set(gca(),"grid",[5 5]);
legend(['error1';'error2'],"in_lower_left");

这个图是双对数坐标,同一时候还调整了图上的文字。须要注意的是:

xset("font size", 4);

语句一定要在

legend([‘error1‘;‘error2‘],"in_lower_left");

语句之前调用。否则得到的图形的legend 的字号会有问题,以下是个实验,先运行例如以下语句:

ind = linspace(0,6,7);
iter = 10.^ind;
err1 = 10.^(-ind);
err2 = (10.^(-ind)).^2;
plot2d("ll", iter, err1, style=2);
plot2d("ll", iter, err2, style=3);
title("Loglog","fontsize", 4);
xlabel("Iterations","fontsize", 4);
ylabel("Error","fontsize", 4);
set(gca(),"grid",[5 5]);
legend(['error1';'error2'],"in_lower_left");

这个图形是和我们的预期一样的。标题和Label的字号变大了,刻度和Legend的字号还是原来的大小。

接着运行:

xset("font size", 4);

结果是刻度上的字号更新为正确的大小了,可legend 的字号没变。看来这个是 scilab 的一个bug。

所以我们须要先设置字号。然后调用legend 函数。

时间: 2024-08-25 23:53:53

Scilab 的画图函数(3)的相关文章

Scilab 的画图函数(1)

Scilab 的画图函数 plot 函数 最主要的是 plot 函数,与 matlab 中的plot 函数类似. xdata = linspace(1,10,50); ydata = sin(xdata); plot(xdata, ydata); 对函数画图,不须要事先计算出 ydata,比方以下的样例画出的结果是同样的. plot (xdata, sin); 这样还能节省些内存占用. 假设仅仅设置总的标题,能够这样操作: title("My Plot"); 假设还要设置XY坐标轴的标

Scilab 的画图函数(2)

一幅图是由很多元素组成的. 包含图标题.x轴标签.y轴标签,刻度线等.图1给出了各个元素的一个示意图. 这些全部的元素在scilab中都是能够用代码控制的. 标题 上个笔记上介绍了用xtitle()函数能够在图上加入标题.比方: title("My Plot"); 实际上,title函数有三种形式: title(my_title) title(my_title,<Property>) title(<axes_handle>,<my_title>,&l

Scilab 的绘图函数(1)

Scilab 的绘图函数 plot 函数 最基本的是 plot 函数,与 matlab 中的plot 函数类似. xdata = linspace(1,10,50); ydata = sin(xdata); plot(xdata, ydata); 对函数绘图,不需要事先计算出 ydata,比如下面的例子画出的结果是相同的. plot (xdata, sin); 这样还能节省些内存占用. 如果只设置总的标题,可以这样操作: title("My Plot"); 如果还要设置XY坐标轴的标题

Scilab 的绘图函数(2)

一幅图是由许多元素组成的.包括图标题,x轴标签,y轴标签,刻度线等.图1给出了各个元素的一个示意图. 这些所有的元素在scilab中都是可以用代码控制的. 标题 上个笔记上介绍了用xtitle()函数可以在图上添加标题.比如: title("My Plot"); 实际上,title函数有三种形式: title(my_title) title(my_title,<Property>) title(<axes_handle>,<my_title>,<

openGL画图函数

OpenGL在画图过程中大致可以分为三步,第一步创建好对应的vertex队列,同时在适当的时机将vertex绑定到GL内部:第二步利用BUFFER_ARRAY向vertex队列提交顶点信息以便对vertex队列进行初始化:第三步则是绑定已经初始化的vertex队列,同时利用对应的画图函数进行绘制. vertex队列的生成主要利用glGenVertexArrays函数完成,其第一个参数定义需要生成的队列的个数:第二个函数则用于接收生成的vertex队列索引.在生成了顶点队列之后,需要利用glBin

Scilab 的绘图函数(3)

我们在做数据绘图或函数图像时经常需要使用对数坐标系.尤其是数据的范围跨越很多个数量级时,通常的线性坐标系下无法表现出数据特征. Scilab 中Plot函数无法画出对数坐标.需要使用 plot2d 函数. plot2d 函数的基本用法如下: plot2d([logflag,][x,],y[,style[,strf[,leg[,rect[,nax]]]]]) plot2d([logflag,][x,],y,<opt_args>) 下面是一个简单的例子: iter = linspace(0,10,

Matlab随笔(1)之画图函数总结

MATLAB函数画图 MATLAB不但擅长於矩阵相关的数值运算,也适合用在各种科学目视表示(Scientific visualization).本节将介绍MATLAB基本xy平面及xyz空间的各项绘图命令,包含一维曲线及二维曲面的绘制.列印及存档. 基本XY平面绘图命令 Plot 是绘制一维曲线的基本函数,但在使用此函数之前,我们需先定义曲线上每一点的x及y座标.下例可画出一条正弦曲线: close all; %linspace(5,100,20)和5:5:100的区别在于前者已知元素总个数而不

R语言基础知识学习(四):R中的画图函数--plot()函数

plot()函数是R中基本的画x-y两个变量的函数,其用法如下为:plot(x, y, ...) 例如:首先我用runif()函数产生了两列随机数:x1,y1,然后用plot()函数直接画图: > x1 <- round(runif(20,min = 0 ,max = 100))> x1 [1] 90 84 86 86 28 43 86 76 90 76 14 62 40 52 87 57 88 17[19] 10 27> y1 <- round(runif(20,min =

MATLAB学习1 之画图函数

ezplot适用条件 "ezplot"命令可以用于显函数.隐函数和参数方程作图. 不同函数的使用格式 显函数y=f(x),ezplot函数的调用格式为ezplot(f, [xmin xmax]); 例:ezplot('sin(10*pi*x)/x',[1 2]);%画出函数曲线 隐函数f(x,y)=0,ezplot函数的调用格式为ezplot(f, [xmin xmax] , [ymin ymax]); 例:ezplot('x^2*sin(x+y^2)+y^2*exp(x)+6*cos