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" alt="">
这个样例假设在普通的坐标系下看,是这个样子的:
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 函数。
Scilab 的画图函数(3)的更多相关文章
- Scilab 的画图函数(1)
Scilab 的画图函数 plot 函数 最主要的是 plot 函数,与 matlab 中的plot 函数类似. xdata = linspace(1,10,50); ydata = sin(xdat ...
- Scilab 的画图函数(2)
一幅图是由很多元素组成的. 包含图标题.x轴标签.y轴标签,刻度线等.图1给出了各个元素的一个示意图. 这些全部的元素在scilab中都是能够用代码控制的. 标题 上个笔记上介绍了用xtitle()函 ...
- OpenCV3.30 画图函数
画图函数(Draw Functions)都放在imgpro. 例如C++中用: #include <opencv2\imgproc.hpp>
- Matlab随笔之画图函数总结
原文:Matlab随笔之画图函数总结 MATLAB函数画图 MATLAB不但擅长於矩阵相关的数值运算,也适合用在各种科学目视表示(Scientific visualization).本节将介绍MATL ...
- matlab画图函数plot()/set/legend
简单plot()/legend/XY轴范围axis 除了坐标轴信息外还可以添加其它的信息,如所画曲线的信息等:测试代码如下 x=0:pi/20:2*pi; y1=sin(x); y2=cos(x); ...
- OpenCV入门:(六:基础画图函数)
有时程序中需要画一些基础的图形,例如直线,矩形,椭圆以及多边形.OpenCV中当然有此类函数. 1.函数介绍 直线line: , , ) img – 图像 pt1 – 直线起点 pt2 – 直线终点 ...
- MATLAB学习1 之画图函数
ezplot适用条件 "ezplot"命令可以用于显函数.隐函数和参数方程作图. 不同函数的使用格式 显函数y=f(x),ezplot函数的调用格式为ezplot(f, [xmin ...
- 1.1-学习Opencv与MFC混合编程之---利用画图函数,生成视频,并写入视频文件
源代码地址:http://download.csdn.net/detail/nuptboyzhb/3961674 写视频文件 Ø 新建菜单项,Learning OpenCV——> OpenCVr ...
- AutoCAD 凸度(bulge)的概念及使用WPF函数画图
前言 凸度(bulge)是AutoCAD 中一个非常重要的概念,凸度控制着两点之间弧度大小,弧度的方向.各种复杂的图像有可能就是成百上千的弧线组成的.从AutoCAD中导出的数据也有该值,一般的形式 ...
随机推荐
- 查看80port是否被占用
windows下命令: netstat -ano|findstr "0.0:80"
- 对象的序列化存储:Serializable 和 Parceable
在进行Android开发的时候我们有时候需要用到数据的持久化存储,或者在进程之间传递数据.其中就可能需要用到对象的序列化,经过序列化的对象之后可以通过Intent或者Boundle来传输了.接下来还是 ...
- 火狐浏览器(firefox)中js要注意的问题
1.出现错误调用error方法或者ajax请求了多次,那么极有可能是异步请求的原因. 添加 async : false , -> async. 默认是 true,即为异步方式,$.aja ...
- EF Code First 注意事项
1.异常“实体类型不存在于上下文中” Context类中不包含该实体类型的DbSet,有可能关联关系没有正确设置
- struts2 s:set标签
set标签是将某个值放到指定范围内, 比如说 student.teacher.parent.age 每次访问这个属性不仅性能低,而且代码可读性很差,为了解决这个问题,可以将这个值设置为一个新值,并且放 ...
- servlet响应解析
response对象可以设置一些响应信息 1)设置状态码 response.setStatus(int) 2)设置响应头信息.定时刷新或者间隔 n 秒后跳转 response.setHeader(&q ...
- UE初写小项目问题之命令行报错:Expected indentation of 4 spaces but found 6
一.问题 刚开始用一个小项目练手,用vue-cli初始化项目,直接安装了所有的东西,如vue-router.ESLint.unit tests等等,当时只懂得vue-router是什么. 问题来了,在 ...
- layui更新表格单元格数据口,更新单元格的内容
//监听工具条 table.on('tool(edit)', function(obj){ var data = obj.data; if(obj.event === 'getinvitation') ...
- 如何利用webmin在Linux主机中添加网站
Linux系统因其高效稳定而受到广大用户的推崇与青睐,然后其管理的复杂性也使很多用户望而却步,动弹不得.为了降低 Linux系统的管理难度,更有效方便的使用该系统,我司所有Linux主机或VPS系统均 ...
- atitit.提升研发管理的利器---重型框架 框架 类库的区别
atitit.提升研发管理的利器---重型框架 框架 类库的区别 1. 重型框架就是it界的重武器. 1 2. 框架 VS. 库 可视化图形化 1 3. 应用框架 1 4. 类库 2 5. 框架是不可 ...