数据可视化主要旨在借助于图形化手段,清晰有效的传达与沟通信息。Matlab作为高校中常使用的工具之一,其可视化能力非常强。 本文将从可视化的基础讲起,也介绍一些数据可视化的作品(包含部分代码)。 Matlab可视化基础(见下图,该图源自一位中科大的博士),里面涉及到画图的一些基础内容,其github链接,文末会提供源码下载: https://github.com/Pjer-zhang/matlabPlotCheatsheet
数据可视化作品(Matlab版本,含代码)
1、 三维切片图:通过切片观测三维数据的变化
1. [x,y,z,v] = flow; %%flow()函数可以生成几个三维向量
2. x1 = min(min(min(x)));x2 = max(max(max(x))); %此处x为25*50*25的矩阵。
3. y1 = min(min(min(x)));y2 = max(max(max(x)));
4. z1 = min(min(min(x)));y2 = max(max(max(x)));
5. sx = linspace(x1+1.5,x2,5);
6. sy = 0;
7. sz = 0;
8. slice(x,y,z,v,sx,sy,sz);
9. view([-38,38]);shading interp;
10. colormap jet;
11.
12. set(gcf,'color',[1 1 1])
2、三维流场
1. [x, y, z] = meshgrid(-0.8:0.2:0.8, -0.8:0.2:0.8, -0.8:0.8:0.8);
2.
3. % Calculate homogenous turbulence values at each (x,y,z)
4. u = sin(pi*x).*cos(pi*y).*cos(pi*z);
5. v = -cos(pi*x).*sin(pi*y).*cos(pi*z);
6. w = sqrt(2/3)*cos(pi*x).*cos(pi*y).*sin(pi*z);
7.
8. % Draw a 3 dimensional quiver plot using the quiver3 function
9. figure
10. quiver3(x, y, z, u, v, z)
11.
12. % Set the axis limits
13. axis([-1 1 -1 1 -1 1])
14.
15. % Add title and axis labels
16. title('Turbulence Values')
17. xlabel('x')
18. ylabel('x')
19. zlabel('z')
3、流场的涡量切片
1. close all
2. load wind % 利用matlab提供的示例数据
3.
4. mycmp=[[ones(20,1),(0.05:0.05:1)',(0.05:0.05:1)'];[(1:-0.05:0.05)',(1:-0.05:0.05)',ones(20,1)]];
5. cav = curl(x,y,z,u,v,w); %计算旋度
6. h = slice(x,y,z,cav,[90 134],59,0); %切片
7. shading interp
8. daspect([1 1 1]);
9. axis tight
10. colormap(mycmp);
11. caxis([-5,5])
12. camlight
13. set([h(1),h(2)],'ambientstrength',.6);
4、运动的流场
5、3维流带图
6、流管图
7、3维速度场全貌
|