matlab 三维饼图,重新学习MATLAB——作图技法及3D可视化

了解点儿MATLAB,知道它非常有用,但一直不太会用,如何快速掌握并运用它呢?

本专栏力争用最简洁的语言和逻辑,让您在最短时间内,学到教材课程中罕见的MATLAB运用技法,从新手迈向成手。

超强的MATLAB作图功能

MATLAB不仅是处理矩阵的神器,还是矩阵可视化的神器。

什么叫矩阵可视化?

其实,我们分析数据/处理信号/解析图像等等这一类的操作,都是对矩阵的操作,并把它可视化出来。

154352301_1_2019021602232737

水波图像看着复杂,其实无非是可视化的矩阵而已

直接上手最常用作图函数——plot

plot,用来绘制二维的图线。

x = 0:pi/100:2*pi;y = sin(x);plot(x,y)

154352301_2_20190216022327130

自动弹出一个界面并显示结果

观察一下代码,x是从0到2pi(也就是360度),间隔是pi/100,也就是说,分成了200小段。

x是个向量,所以y=sin(x)也是一个相同尺寸的向量。

plot(x,y)就是把对应位置的xy连成直线。

有同学会问了,我明明看到的是曲线,你怎么说是直线?

这样,我把x变成 x = 0:pi/5:2*pi ,再看看结果:

154352301_3_20190216022327240

分的段过少,图线误差就大,变成折线了

所以说,完全取决于分成多少小段,类似于图像处理中的分辨率。

常用技术:一图画多线

一张图中,为了方便对比,想一起画n条曲线,怎么做呢?x = linspace(-2*pi,2*pi);y1 = sin(x);y2 = cos(x);figureplot(x,y1,x,y2)

154352301_4_20190216022327349

一图多线,方便对比

说明:linspace的用法类似于冒号;需要写2遍x,不可遗漏。

plot其它功能介绍

plot太常用了,是绘图的基础,大家一定help看一下,这里再详细补充一下。

plot还有太多功能了,比如:设置线型/线颜色/线粗

设置marker的形状/颜色/大小

设置标题和坐标轴

设置网格线和标注

使用subplot实现一张大图中多个小图

来个例子吧。

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)')

154352301_5_20190216022327443

一张大图中包含两个小图

这里的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)

154352301_6_20190216022327537

自动分组,自动上色

挺方便的吧,几个数字就完成一张图的绘制。

这里观察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')

154352301_7_20190216022327630

误差线图——每个“工”字形代表这个数据的误差范围

三种常用2D作图之——直方图histx = randn(1000,3); hist(x)

154352301_8_20190216022327740

能看出正态分布的趋势么?

这里使用了一个正态分布的随机函数randn,1000行3列。还有一种漂亮的极坐标直方图——rose

一看名字就知道她的美丽了,为啥叫“玫瑰”呢?请看——

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)

154352301_9_20190216022327849

多像一朵玫瑰花

这是极坐标下的直方图形式,需要注意的是,虽然有点像,但它并不是传统意义上的饼图,因为饼图有专用的函数——

三种常用2D作图之——饼图pieX = [1 3 0.5 2.5 2];pie(X)

154352301_10_20190216022327927

自动产生比重值和颜色

X是一个向量,每个元素代表一类对象的值。

再来一个高级用法:

X = categorical({'North','South','North','East','South','West'});explode = {'West'};labels = {'E','N','S','W'};pie(X,explode,labels)

154352301_11_2019021602232821

MATLAB的饼图也挺好看的吧

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值