数据可视化是指运用 计算机图形学和 图像处理技术,将数据转化为图形或图像并在屏幕上显示出来,以进行交互处理的理论、方法和技术。该技术的特点如下:
- 交互性:以交互的方式管理和开发数据。
- 多维性:可以看到对象或事件的数据的多个属性或变量,并且可以按照数据每一维的值,将其分类、排序、组合和显示。
- 可视化:数据可以用图像、曲线等显示,并可对其模式和相互关系进行可视化分析。
这里仅给出离散数据图、线图以及曲面等作为示范,更多的内容和细节可以去matlab官网学习:
https://ww2.mathworks.cn/help/matlab/graphics.html?s_tid=CRUX_lftnav
一、离散数据图
1.1散点图
创建 x 为 0 和 3π 之间的 200 个等间距值、创建 y 为带随机干扰的余弦值,根据以上创建一个散点图:
x = linspace(0,3*pi,200);
y = cos(x) + rand(1,200);
scatter(x,y)
![](https://img-blog.csdnimg.cn/b4ba5ca449ea4aec909c4f667ad2f0de.png)
接下来可以改变圆圈大小,以平方磅为单位指定大小
sz = linspace(1,100,200)
![](https://img-blog.csdnimg.cn/b478011ff8e94536b6564804bab34b89.png)
当然也可以改变圆圈的颜色
c = linspace(1,10,length(x));
scatter(x,y,[],c)
![](https://img-blog.csdnimg.cn/d800e14003db48d7981c4d2e73bb01fd.png)
上述图形的完整代码:
x = linspace(0,3*pi,200);
y = cos(x) + rand(1,200);
c = linspace(1,10,length(x));
scatter(x,y,[],c)
1.2 条形图
利用 tiledlayout 和 nexttile 函数显示分块条形图。调用 tiledlayout 函数以创建一个 2×1 分块图布局、调用 nexttile 函数以创建坐标区对象 ax1 和 ax2。在顶部坐标区中显示条形图。在底部坐标区中,显示相同数据的堆叠条形图。
更多有关函数的使用查阅官网:
tiledlayout函数
nexttile
y = [1 2 3; 4 5 6];
tiledlayout(2,1)
% Top bar graph
ax1 = nexttile;
bar(ax1,y)
% Bottom bar graph
ax2 = nexttile;
bar(ax2,y,'stacked')
![](https://img-blog.csdnimg.cn/d5ae1193b2694b5097d7d1f2a5fbd185.png)
二、线图
2.1.二维线图
绘制三条正弦曲线,每条曲线之间存在较小的相移。第一条正弦曲线使用绿色线条,不带标记。第二条正弦曲线使用蓝色虚线,带圆形标记。第三条正弦曲线只使用青蓝色星号标记。
x = 0:pi/10:2*pi;
y1 = sin(x);
y2 = sin(x-0.25);
y3 = sin(x-0.5);
figure
plot(x,y1,'g',x,y2,'b--o',x,y3,'c*')
![](https://img-blog.csdnimg.cn/25a82e487e154a90b0a5ca96e501c143.png)
2.2 三维参数化曲线绘图函数
例1:指定线条属性并显示标记
在参数的不同区间,将同一条三维参数化曲线绘制三次。对于第一个区间,使用 2 磅的线宽。对于第二个,指定带有圆形标记的红色虚线线型。对于第三个,指定带有星号标记的青蓝色点划线线型。
fplot3(@(t)sin(t), @(t)cos(t), @(t)t, [0 2*pi], 'LineWidth', 2)
hold on
fplot3(@(t)sin(t), @(t)cos(t), @(t)t, [2*pi 4*pi], '--or')
fplot3(@(t)sin(t), @(t)cos(t), @(t)t, [4*pi 6*pi], '-.*c')
hold off
![](https://img-blog.csdnimg.cn/f1963f7684a24f1aa46cd53033cbc89a.png)
例2:为从 −2π 到 2π 范围内的 t 值绘制参数化线条
xt = @(t)t;
yt = @(t)t/2;
zt = @(t)sin(6*t);
fplot3(xt,yt,zt,[-2*pi 2*pi],'MeshDensity',30,'LineWidth',1);
title('x=t, y=t/2, z=sin(6t) for -2\pi<t<2\pi')
xlabel('x');
ylabel('y');
view(52.5,30)
box on
![](https://img-blog.csdnimg.cn/a8a661dad5a24de99c67cce63ca7c187.png)
三、曲面、体积和多边形
创建三个相同大小的矩阵。然后将它们绘制为一个曲面。曲面图对高度和颜色均使用 Z
[X,Y] = meshgrid(1:0.5:10,1:20);
Z = sin(X) + cos(Y);
surf(X,Y,Z)
![](https://img-blog.csdnimg.cn/cc7c17c470a04bee86e7d688f77d9691.png)
创建三个相同大小的矩阵。然后将它们绘制为一个网格图。该绘图使用 Z 确定高度和颜色。
[X,Y] = meshgrid(-8:.5:8);
R = sqrt(X.^2 + Y.^2) + eps;
Z = sin(R)./R;
mesh(X,Y,Z)
![](https://img-blog.csdnimg.cn/3f0ef092de534147bee49efcd81dddb0.png)
也可以向图中增加颜色栏实现颜色比对:
[X,Y] = meshgrid(-8:.5:8);
R = sqrt(X.^2 + Y.^2) + eps;
Z = sin(R)./R;
C = X.*Y;
mesh(X,Y,Z,C)
colorbar
![](https://img-blog.csdnimg.cn/3537a98441fd48379f11f418bdc9d7ad.png)
本章涉及实际应用较多,不论是在论文还是科研上都对本章的应用实践要求较高。因此对绘图的基本语法还需要多运用才会有更深刻的体会。以上就是Matlab入门篇的内容,下一段就正式进入到高级篇的学习啦~