MATLAB 数据可视化教程:从基础到进阶

文章目录


一、基础绘图函数

(一)二维绘图

  • plot 函数

x = 0:0.1:2*pi; % 生成x数据
y = sin(x); % 生成y数据
plot(x, y); % 绘制正弦曲线
title(‘正弦函数’); % 添加标题
xlabel(‘x’); % 添加x轴标签
ylabel(‘sin(x)’); % 添加y轴标签
grid on; % 显示网格线

  • 多曲线绘制

x = 0:0.1:2*pi;
y1 = sin(x);
y2 = cos(x);
plot(x, y1, ‘r-’, x, y2, ‘b–’); % 同时绘制正弦和余弦曲线,红色实线和蓝色虚线
legend(‘sin(x)’, ‘cos(x)’); % 添加图例

(二)三维绘图

  • mesh 函数

[x, y] = meshgrid(-2:0.1:2); % 生成网格数据
z = x.^2 + y.^2; % 计算z值
mesh(x, y, z); % 绘制三维网格图
title(‘三维抛物面’);
xlabel(‘x’);
ylabel(‘y’);
zlabel(‘z’);

  • surf 函数

[x, y] = meshgrid(-2:0.1:2);
z = x.^2 + y.^2;
surf(x, y, z); % 绘制三维曲面图,比mesh更光滑
shading interp; % 添加颜色插值
colorbar; % 添加颜色条

二、图形美化与定制

(一)颜色与线型设置

x = 0:0.1:2*pi;
y1 = sin(x);
y2 = cos(x);
plot(x, y1, ‘LineWidth’, 2, ‘Color’, [0.5 0.7 0.9], ‘Marker’, ‘o’, ‘MarkerSize’, 6); % 设置线宽、颜色和标记
hold on; % 保持当前图形
plot(x, y2, ‘LineStyle’, ‘-.’, ‘Color’, ‘r’, ‘Marker’, ‘s’); % 设置线型、颜色和标记
hold off;

(二)坐标轴设置

x = 0:0.1:2pi;
y = sin(x);
plot(x, y);
axis([0 2
pi -1.2 1.2]); % 设置坐标轴范围
set(gca, ‘FontSize’, 12, ‘FontName’, ‘Arial’); % 设置坐标轴字体
grid minor; % 显示次要网格线

三、特殊图形类型

(一)散点图

x = randn(100, 1); % 生成随机数据
y = randn(100, 1);
scatter(x, y, 50, ‘filled’, ‘MarkerEdgeColor’, ‘k’); % 绘制散点图,设置点大小和填充
title(‘随机散点图’);

(二)柱状图

data = [10 15 7; 12 9 18; 5 13 11]; % 数据矩阵
bar(data); % 绘制柱状图
legend(‘A’, ‘B’, ‘C’); % 添加图例
xticklabels({‘X1’, ‘X2’, ‘X3’}); % 设置x轴刻度标签

(三)饼图

data = [35 25 20 20]; % 数据
labels = {‘类别A’, ‘类别B’, ‘类别C’, ‘类别D’}; % 标签
pie(data, labels); % 绘制饼图
title(‘数据分布’);

四、多图布局

(一)subplot 函数

x = 0:0.1:2*pi;
y1 = sin(x);
y2 = cos(x);
y3 = tan(x);
y4 = exp(x);

subplot(2, 2, 1); % 创建2×2的子图,选择第1个
plot(x, y1);
title('正弦函数');

subplot(2, 2, 2); % 选择第2个
plot(x, y2);
title('余弦函数');

subplot(2, 2, 3); % 选择第3个
plot(x, y3);
title('正切函数');
axis([0 2*pi -10 10]); % 设置y轴范围

subplot(2, 2, 4); % 选择第4个
plot(x, y4);
title('指数函数');

五、数据可视化进阶

(一)动画制作

figure;
x = 0:0.1:2*pi;
h = plot(x, sin(x)); % 创建图形句柄
axis([0 2*pi -1 1]);
title('动画演示');

for t = 0:0.1:10
    y = sin(x - t);
    set(h, 'YData', y); % 更新y数据
    drawnow; % 立即重绘
    pause(0.05); % 暂停一小段时间
end

(二)等高线图

[x, y] = meshgrid(-3:0.1:3);
z = x.^2 + y.^2;
contour(x, y, z, 20); % 绘制20条等高线
colorbar;
title(‘等高线图’);

(三)极坐标图

theta = 0:0.01:2pi;
r = sin(2
theta);
polarplot(theta, r); % 绘制极坐标图
title(‘玫瑰图’);

六、导出图形

(一)保存为图片文件

x = 0:0.1:2*pi;
y = sin(x);
plot(x, y);
title('正弦曲线');

print('sin_curve.png', '-dpng', '-r300'); % 保存为300dpi的PNG文件
print('sin_curve.eps', '-depsc'); % 保存为EPS矢量图

(二)保存为 MATLAB 图形文件

saveas(gcf, ‘my_figure.fig’); % 保存当前图形为.fig文件
% 后续可以使用open(‘my_figure.fig’)打开

本文是转载文章,点击查看原文
如有侵权,请联系 lx@jishuguiji.net 删除。