超强的MATLAB作图功能MATLAB不仅是处理矩阵的神器,还是矩阵可视化的神器。 什么叫矩阵可视化? 其实,我们分析数据/处理信号/解析图像等等这一类的操作,都是对矩阵的操作,并把它可视化出来。 水波图像看着复杂,其实无非是可视化的矩阵而已 直接上手最常用作图函数——plotplot,用来绘制二维的图线。 x = 0:pi/100:2*pi;y = sin(x);plot(x,y) 自动弹出一个界面并显示结果 观察一下代码,x是从0到2pi(也就是360度),间隔是pi/100,也就是说,分成了200小段。 x是个向量,所以y=sin(x)也是一个相同尺寸的向量。 plot(x,y)就是把对应位置的xy连成直线。 有同学会问了,我明明看到的是曲线,你怎么说是直线? 这样,我把x变成 x = 0:pi/5:2*pi ,再看看结果: 分的段过少,图线误差就大,变成折线了 所以说,完全取决于分成多少小段,类似于图像处理中的分辨率。 常用技术:一图画多线一张图中,为了方便对比,想一起画n条曲线,怎么做呢? x = linspace(-2*pi,2*pi);y1 = sin(x);y2 = cos(x);figureplot(x,y1,x,y2) 一图多线,方便对比 说明:linspace的用法类似于冒号;需要写2遍x,不可遗漏。 plot其它功能介绍plot太常用了,是绘图的基础,大家一定help看一下,这里再详细补充一下。 plot还有太多功能了,比如:
来个例子吧。 ax1 = subplot(2,1,1); % top subplotx = linspace(0,3);y1 = sin(5*x);plot(ax1,x,y1)title(ax1,'Top Subplot')ylabel(ax1,'sin(5x)')ax2 = subplot(2,1,2); % bottom subploty2 = sin(15*x);plot(ax2,x,y2)title(ax2,'Bottom Subplot')ylabel(ax2,'sin(15x)') 一张大图中包含两个小图 这里的subplot(2,1,1)明显又是矩阵思维,“2,1” 不就是代表2行1列的意思么! 所以说,矩阵思维贯穿MATLAB始终。 三种常用2D作图之——条形图bary = [2 2 3; 2 5 6; 2 8 9; 2 11 12];bar(y) 自动分组,自动上色 挺方便的吧,几个数字就完成一张图的绘制。 这里观察y的结构和bar图的对应关系,可以知道,每一行被认为是一组,每一列是一类数据共用同样的颜色。 误差线图errorbar是条形图中很常用的形式了,尤其学工程尤其医学工程类的同学,是不可不知的—— x = linspace(0,10,15);y = sin(x/2);err = 0.3*ones(size(y)); % 这里的误差是“生成”出来的并不是实验的真实数据errorbar(x,y,err,'-s','MarkerSize',10,... 'MarkerEdgeColor','red','MarkerFaceColor','red') 误差线图——每个“工”字形代表这个数据的误差范围 三种常用2D作图之——直方图histx = randn(1000,3); hist(x) 能看出正态分布的趋势么? 这里使用了一个正态分布的随机函数randn,1000行3列。
一看名字就知道她的美丽了,为啥叫“玫瑰”呢?请看—— theta = [0.4 1.4 3.1 2.3 0.4 2.5 3.9 2.8 2.3 1.6 4.6 4.5 6.1 3.9 5.1];rose(theta,10) 多像一朵玫瑰花 这是极坐标下的直方图形式,需要注意的是,虽然有点像,但它并不是传统意义上的饼图,因为饼图有专用的函数—— 三种常用2D作图之——饼图pieX = [1 3 0.5 2.5 2];pie(X) 自动产生比重值和颜色 X是一个向量,每个元素代表一类对象的值。 再来一个高级用法: X = categorical({'North','South','North','East','South','West'});explode = {'West'};labels = {'E','N','S','W'};pie(X,explode,labels) ![]() MATLAB的饼图也挺好看的吧 |
|
来自: soundtouch > 《待分类》