matlab绘制各种形式的云图

本文介绍了如何使用MATLAB编程绘制三种不同风格的图形:颜色线图、设置等高线的云图以及限定范围显示的云图,展示了在处理网格数据和函数可视化中的技巧。
摘要由CSDN通过智能技术生成

目录

样式一、有颜色线图

样式二、设置等高线云图

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

样式四、三维云图绘制


样式一、有颜色线图

% 定义任意区域的网格数据
[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方向');

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

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值