目录

样式一、有颜色线图

样式二、设置等高线云图

样式三、限定范围显示云图

样式四、三维云图绘制

样式一、有颜色线图

% 定义任意区域的网格数据

[x, y] = meshgrid(-5:0.1:5, -5:0.1:5);

% 定义任意区域的函数

z = x.^2 + y.^2;

% 绘制云图

contour(x, y, z, 'LineWidth', 2);

xlabel('X轴');

ylabel('Y轴');

title('任意区域的云图');

grid on;

%让X轴和Y轴比例尺相同

axis image

样式二、设置等高线云图

syms x y

%网格密度,决定图像是否光滑

n1=20;

%坐标边界

[min_x,max_x,min_y,max_y]=deal(0,1,0,1);

inc=(max_x-min_x)/n1;

xx=min_x:inc:max_x;

yy=min_y:inc:max_y;

[X,Y]=meshgrid(xx,yy);

f=100*(X.^2+Y.^2);

figure

% contourf(X,Y,f')

[C,h]=contourf(X,Y,f,[90 80 70 60 50 40 30 20 -10],'ShowText','on');%设置等高线

clabel(C,h,'fontsize',12)%等高线标签字号大小

shading interp

colorbar

set(gca,'FontSize',12)%坐标轴字号大小

% set(gca,'YDir','normal') %反转Y轴

title('Temperature (℃)','FontSize',12);

colormap( jet)

% parula 蓝黄图 turbo蓝黑红 Hot 白黑红 gray灰图 jet蓝黑红 White线图

% 坐标轴设置---------------------------------------------

% % % set(gca, 'xTick', [0:6:24]);

% % % set(gca,'XTickLabel',{'00:00','06:00','12:00','18:00','24:00'})

% % % set(gca, 'FontSize', 18);

% % % xlim([0, 24])

%添加横坐标名---------------------------------------------

xlabel('x(m)')

ylabel('y(m)')

样式三、限定范围显示云图

限定下图的范围显示云图

x=linspace(0,1,1000);

y=linspace(0,1,1000);

num=length(y);

[X,Y]=meshgrid(x,y); % 产生网格数据并处理

f =100*(X.^2+Y.^2); % 对应的第三维数据

%限定云图范围

for i=1:num

for j=1:num

if Y(i,j)>(5/3-5/3*X(i,j))

f(i,j) = NaN;

end

end

end

figure % 有等高线的pcolor

[C,h]=contourf(X,Y,f,[90 80 70 60 50 40 30 20 -10],'ShowText','on');%设置等高线

clabel(C,h,'fontsize',12)%等高线标签字号大小

shading interp

colorbar

set(gca,'FontSize',12)%坐标轴字号大小

title('Temperature (℃)','FontSize',12);

colormap( jet)

xlabel('x(m)')

ylabel('y(m)')

注意网格必须划的足够密,否则云图有锯齿。

样式四、三维云图绘制

X = [0, 1, 0, 1, 0, 1, 0, 1]; % 示例x坐标

Y = [0, 0, 1, 1, 0, 0, 1, 1]; % 示例y坐标

Z = [0, 0, 0, 0, 1, 1, 1, 1]; % 示例z坐标

T = [20, 30, 25, 35, 22, 32, 28, 38]; % 对应节点的温度值

% 创建三维插值函数

F = scatteredInterpolant(X', Y', Z', T', 'linear', 'none'); % 插值方法:线性

% 创建规则网格

nx = 30; % x方向网格数

ny = 30; % y方向网格数

nz = 30; % z方向网格数

xq = linspace(min(X), max(X), nx);

yq = linspace(min(Y), max(Y), ny);

zq = linspace(min(Z), max(Z), nz);

[Xq, Yq, Zq] = meshgrid(xq, yq, zq);

% 计算规则网格上的温度值

Tq = F(Xq, Yq, Zq);

% 绘制三维温度云图

figure;

% 使用切片 (slice) 显示三维温度分布

slice(Xq, Yq, Zq, Tq, ...

[min(Xq), mean(Xq), max(Xq)], ... % 在 x 方向的切片位置

[min(Yq), mean(Yq), max(Yq)], ... % 在 y 方向的切片位置

[min(Zq), mean(Zq)]); % 在 z 方向的切片位置

shading interp; % 插值显示

colormap(jet); % 颜色映射

colorbar; % 添加颜色条

title('三维温度云图');

xlabel('X方向');

ylabel('Y方向');

zlabel('Z方向');

如有更好的方法欢迎私聊交流!