MATLAB 数据可视化教程

以下是一个关于MATLAB数据可视化的基础教程,涵盖了常见的绘图函数、图形定制和高级可视化技术。

1. 基础绘图函数

MATLAB提供了多种绘图函数,适用于不同类型的数据可视化。

1.1 二维线图 (plot)

% 创建示例数据
x = linspace(0, 2*pi, 100);
y = sin(x);

% 绘制基本线图
figure; % 创建新的图形窗口
plot(x, y, 'LineWidth', 2); % 'LineWidth'指定线宽

% 添加标题和标签
title('正弦函数图像');
xlabel('x');
ylabel('sin(x)');

% 添加网格线
grid on;

1.2 散点图 (scatter)

% 创建随机数据
x = randn(100, 1);
y = randn(100, 1);

% 绘制散点图
figure;
scatter(x, y, 50, 'filled'); % 50指定点的大小,'filled'填充点

% 添加标题和标签
title('随机数据散点图');
xlabel('x');
ylabel('y');

1.3 柱状图 (bar)

% 创建示例数据
categories = {'A', 'B', 'C', 'D', 'E'};
values = [15, 28, 32, 19, 24];

% 绘制柱状图
figure;
bar(categories, values);

% 添加标题和标签
title('类别数据柱状图');
xlabel('类别');
ylabel('数值');

2. 图形定制

MATLAB允许通过修改属性来自定义图形外观。

2.1 颜色和线型

x = linspace(0, 2*pi, 100);
y1 = sin(x);
y2 = cos(x);

figure;
plot(x, y1, 'r--', x, y2, 'b-.', 'LineWidth', 1.5); % 'r--'表示红色虚线,'b-.'表示蓝色点划线
legend('sin(x)', 'cos(x)'); % 添加图例

2.2 坐标轴范围和刻度

x = linspace(0, 10, 100);
y = exp(-x/2) .* sin(5*x);

figure;
plot(x, y);
xlim([0, 10]); % 设置x轴范围
ylim([-1, 1]); % 设置y轴范围
xticks(0:2:10); % 设置x轴刻度
yticks(-1:0.5:1); % 设置y轴刻度

2.3 子图 (subplot)

x = linspace(0, 2*pi, 100);

figure;
subplot(2, 2, 1); % 创建2×2的子图布局,选择第1个位置
plot(x, sin(x));
title('sin(x)');

subplot(2, 2, 2); % 第2个位置
plot(x, cos(x));
title('cos(x)');

subplot(2, 2, 3); % 第3个位置
plot(x, tan(x));
title('tan(x)');
ylim([-10, 10]); % 限制y轴范围

subplot(2, 2, 4); % 第4个位置
plot(x, cot(x));
title('cot(x)');
ylim([-10, 10]);

3. 三维可视化

MATLAB提供了强大的三维绘图功能。

3.1 三维线图 (plot3)

t = linspace(0, 10*pi, 1000);
x = cos(t);
y = sin(t);
z = t/10;

figure;
plot3(x, y, z, 'LineWidth', 2);
title('三维螺旋线');
xlabel('X');
ylabel('Y');
zlabel('Z');
grid on;

3.2 三维曲面图 (surfmesh)

% 创建网格数据
[X, Y] = meshgrid(-2:0.1:2, -2:0.1:2);
Z = X.^2 + Y.^2; % 抛物面

figure;
surf(X, Y, Z); % 绘制曲面图
title('三维曲面图 (surf)');
xlabel('X');
ylabel('Y');
zlabel('Z');
colorbar; % 添加颜色条

figure;
mesh(X, Y, Z); % 绘制网格图
title('三维网格图 (mesh)');
xlabel('X');
ylabel('Y');
zlabel('Z');

4. 高级可视化技术

4.1 热图 (imagesc)

% 创建相关矩阵
data = rand(10, 10); % 10×10的随机数据
data = data * data'; % 确保对称性

figure;
imagesc(data); % 绘制热图
colorbar; % 添加颜色条
title('热图示例');
xlabel('X轴');
ylabel('Y轴');

4.2 等高线图 (contour)

[X, Y] = meshgrid(-3:0.1:3, -3:0.1:3);
Z = X.^2 - Y.^2; % 双曲面

figure;
contour(X, Y, Z, 20); % 绘制20条等高线
colorbar;
title('等高线图');
xlabel('X');
ylabel('Y');

5. 保存和导出图形

% 保存当前图形为PNG格式
print('my_plot.png', '-dpng', '-r300'); % 300 DPI分辨率

% 或者使用saveas函数
saveas(gcf, 'my_plot.jpg', 'jpg'); % gcf表示当前图形窗口

总结

MATLAB的数据可视化功能非常强大,通过基础绘图函数、图形定制和高级技术,可以创建各种专业的图表。建议通过MATLAB官方文档进一步学习更多函数和选项:[MATLAB Graphics Documentation]

posted @ 2025-05-13 15:48  小元技能  阅读(45)  评论(0)    收藏  举报