文章目录
- 一、基础绘图函数
- (二)三维绘图
- 二、图形美化与定制
- (一)颜色与线型设置
- 三、特殊图形类型
- (二)柱状图
- (三)饼图
- 四、多图布局
- 五、数据可视化进阶
- (二)等高线图
- (三)极坐标图
- 六、导出图形
- (二)保存为 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 2pi -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(2theta);
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’)打开